Skip to content

Commit 6286a6f

Browse files
release: v0.1.17
1 parent c8dc96d commit 6286a6f

64 files changed

Lines changed: 4070 additions & 13 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/llms-full.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ await roxy.VedicAstrology.PlanetaryPositions.PostAsync(new() { Date = new Date(1
155155
// Monthly Ephemeris - Daily sidereal planetary positions for a month
156156
await roxy.VedicAstrology.PlanetaryPositions.Monthly.PostAsync(new() { Year = 2026, Month = 2 });
157157

158-
// Get current Mahadasha, Antardasha, Pratyantardasha - Dasha Calculator API
158+
// Get current Mahadasha, Antardasha, Pratyantardasha, Sookshma - Dasha Calculator API
159159
await roxy.VedicAstrology.Dasha.Current.PostAsync(new() { Date = new Date(1990, 7, 4), Time = new Time(10, 12, 0), Latitude = 28.6139, Longitude = 77.209, Timezone = new() { Double = 5.5 } });
160160

161161
// Get all 9 Mahadasha periods (120-year cycle)
@@ -164,6 +164,12 @@ await roxy.VedicAstrology.Dasha.Major.PostAsync(new() { Date = new Date(1990, 7,
164164
// Get all Antardashas (sub-periods) for a specific Mahadasha
165165
await roxy.VedicAstrology.Dasha.Sub["Jupiter"].PostAsync(new() { Date = new Date(1990, 7, 4), Time = new Time(10, 12, 0), Latitude = 28.6139, Longitude = 77.209, Timezone = new() { Double = 5.5 } });
166166

167+
// Get all Pratyantardashas (antara periods) for a Mahadasha and Antardasha
168+
await roxy.VedicAstrology.Dasha.Sub["Saturn"]["Venus"].PostAsync(new() { Date = new Date(1990, 7, 4), Time = new Time(10, 12, 0), Latitude = 28.6139, Longitude = 77.209, Timezone = new() { Double = 5.5 } });
169+
170+
// Get all Sookshma dashas for a Mahadasha, Antardasha and Pratyantardasha
171+
await roxy.VedicAstrology.Dasha.Sub["Saturn"]["Venus"]["Rahu"].PostAsync(new() { Date = new Date(1990, 7, 4), Time = new Time(10, 12, 0), Latitude = 28.6139, Longitude = 77.209, Timezone = new() { Double = 5.5 } });
172+
167173
// Get basic Panchang - Tithi Nakshatra Yoga Karana Calculator
168174
await roxy.VedicAstrology.Panchang.Basic.PostAsync(new() { Date = new Date(2025, 12, 17), Time = new Time(12, 0, 0), Latitude = 28.6139, Longitude = 77.209, Timezone = new() { Double = 5.5 } });
169175

specs/openapi.json

Lines changed: 1247 additions & 6 deletions
Large diffs are not rendered by default.

src/Generated/VedicAstrology/Dasha/Current/CurrentPostRequestBody.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ public partial class CurrentPostRequestBody : IAdditionalDataHolder, IParsable
1515
{
1616
/// <summary>Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.</summary>
1717
public IDictionary<string, object> AdditionalData { get; set; }
18+
/// <summary>Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. &quot;lahiri&quot; uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. &quot;kp-newcomb&quot; uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. &quot;kp-old&quot; uses the Krishnamurti original table from KP Reader-1. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.</summary>
19+
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostRequestBody_ayanamsa? Ayanamsa { get; set; }
1820
/// <summary>Birth date in YYYY-MM-DD format. Date determines planetary positions and nakshatra calculations for Vedic kundli (janam patri). Accurate birth date is essential for dashas, yoga calculations, and divisional charts (vargas).</summary>
1921
public Date? Date { get; set; }
2022
/// <summary>Birth location latitude in decimal degrees. Location determines local sidereal time for Lagna calculation and affects bhava (house) cusps. Example: Delhi 28.6139, Mumbai 19.0760, Kathmandu 27.7172.</summary>
@@ -37,6 +39,7 @@ public partial class CurrentPostRequestBody : IAdditionalDataHolder, IParsable
3739
public CurrentPostRequestBody()
3840
{
3941
AdditionalData = new Dictionary<string, object>();
42+
Ayanamsa = global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostRequestBody_ayanamsa.Lahiri;
4043
}
4144
/// <summary>
4245
/// Creates a new instance of the appropriate class based on discriminator value
@@ -56,6 +59,7 @@ public virtual IDictionary<string, Action<IParseNode>> GetFieldDeserializers()
5659
{
5760
return new Dictionary<string, Action<IParseNode>>
5861
{
62+
{ "ayanamsa", n => { Ayanamsa = n.GetEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostRequestBody_ayanamsa>(); } },
5963
{ "date", n => { Date = n.GetDateValue(); } },
6064
{ "latitude", n => { Latitude = n.GetDoubleValue(); } },
6165
{ "longitude", n => { Longitude = n.GetDoubleValue(); } },
@@ -70,6 +74,7 @@ public virtual IDictionary<string, Action<IParseNode>> GetFieldDeserializers()
7074
public virtual void Serialize(ISerializationWriter writer)
7175
{
7276
if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer));
77+
writer.WriteEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostRequestBody_ayanamsa>("ayanamsa", Ayanamsa);
7378
writer.WriteDateValue("date", Date);
7479
writer.WriteDoubleValue("latitude", Latitude);
7580
writer.WriteDoubleValue("longitude", Longitude);
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// <auto-generated/>
2+
using System.Runtime.Serialization;
3+
using System;
4+
namespace RoxyApi.VedicAstrology.Dasha.Current
5+
{
6+
/// <summary>Ayanamsa system used to place the birth Moon in its nakshatra, which sets every dasha start and end date. &quot;lahiri&quot; uses Lahiri/Chitrapaksha, the traditional Vedic standard, and is the default. &quot;kp-newcomb&quot; uses the KP-Newcomb dynamic formula, matching Krishnamurti Paddhati software. &quot;kp-old&quot; uses the Krishnamurti original table from KP Reader-1. Switching frames shifts every dasha boundary by weeks, so pick the one your reference software uses.</summary>
7+
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
8+
public enum CurrentPostRequestBody_ayanamsa
9+
{
10+
[EnumMember(Value = "kp-newcomb")]
11+
#pragma warning disable CS1591
12+
KpNewcomb,
13+
#pragma warning restore CS1591
14+
[EnumMember(Value = "kp-old")]
15+
#pragma warning disable CS1591
16+
KpOld,
17+
#pragma warning restore CS1591
18+
[EnumMember(Value = "lahiri")]
19+
#pragma warning disable CS1591
20+
Lahiri,
21+
#pragma warning restore CS1591
22+
}
23+
}

src/Generated/VedicAstrology/Dasha/Current/CurrentPostResponse.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ public partial class CurrentPostResponse : IAdditionalDataHolder, IParsable
2222
#else
2323
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha Antardasha { get; set; }
2424
#endif
25+
/// <summary>Ayanamsa actually applied, in degrees. The precession offset subtracted from the tropical (sayana) longitude to get the sidereal (nirayana) one. Lahiri sits near 23 deg 43 min for a 1990 birth, KP-Newcomb near 23 deg 38 min.</summary>
26+
public double? Ayanamsa { get; set; }
27+
/// <summary>Ayanamsa system used, echoing the request field. One of &quot;lahiri&quot;, &quot;kp-newcomb&quot;, &quot;kp-old&quot;. Echoed so a client can confirm which frame produced these dates without re-deriving it.</summary>
28+
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_ayanamsaType? AyanamsaType { get; set; }
2529
/// <summary>Mahadasha (major planetary period) in the 120-year Vimshottari dasha cycle. Start and end dates are determined by Moon nakshatra at birth.</summary>
2630
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
2731
#nullable enable
@@ -30,6 +34,8 @@ public partial class CurrentPostResponse : IAdditionalDataHolder, IParsable
3034
#else
3135
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_mahadasha Mahadasha { get; set; }
3236
#endif
37+
/// <summary>Sidereal (nirayana) longitude of the birth Moon in degrees, 0 to 360, measured in the ayanamsa frame reported below. This single value determines the birth nakshatra and therefore every dasha start and end date in this response. Compare it against a reference chart to reconcile any date difference at its source.</summary>
38+
public double? MoonLongitude { get; set; }
3339
/// <summary>Birth Moon nakshatra number (1-27). This nakshatra determines the starting dasha lord in the Vimshottari 120-year cycle.</summary>
3440
public int? MoonNakshatra { get; set; }
3541
/// <summary>Vimshottari dasha lord of the birth nakshatra. This planet rules the first Mahadasha in the native life cycle.</summary>
@@ -73,6 +79,22 @@ public partial class CurrentPostResponse : IAdditionalDataHolder, IParsable
7379
#nullable restore
7480
#else
7581
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInPratyantardasha RemainingInPratyantardasha { get; set; }
82+
#endif
83+
/// <summary>Time remaining in the currently running Sookshma dasha (fourth level). Sookshma periods last days rather than months, so this value turns over quickly.</summary>
84+
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
85+
#nullable enable
86+
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInSookshma? RemainingInSookshma { get; set; }
87+
#nullable restore
88+
#else
89+
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInSookshma RemainingInSookshma { get; set; }
90+
#endif
91+
/// <summary>Sookshma dasha (sookshma antardasha), the fourth level of the Vimshottari dasha hierarchy. Each Pratyantardasha divides into 9 Sookshma periods running roughly 3 to 30 days each, the finest level exposed by this API and the one used for day-level event timing and muhurta style selection.</summary>
92+
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
93+
#nullable enable
94+
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_sookshmaDasha? SookshmaDasha { get; set; }
95+
#nullable restore
96+
#else
97+
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_sookshmaDasha SookshmaDasha { get; set; }
7698
#endif
7799
/// <summary>
78100
/// Instantiates a new <see cref="global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse"/> and sets the default values.
@@ -100,14 +122,19 @@ public virtual IDictionary<string, Action<IParseNode>> GetFieldDeserializers()
100122
return new Dictionary<string, Action<IParseNode>>
101123
{
102124
{ "antardasha", n => { Antardasha = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha.CreateFromDiscriminatorValue); } },
125+
{ "ayanamsa", n => { Ayanamsa = n.GetDoubleValue(); } },
126+
{ "ayanamsaType", n => { AyanamsaType = n.GetEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_ayanamsaType>(); } },
103127
{ "mahadasha", n => { Mahadasha = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_mahadasha>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_mahadasha.CreateFromDiscriminatorValue); } },
128+
{ "moonLongitude", n => { MoonLongitude = n.GetDoubleValue(); } },
104129
{ "moonNakshatra", n => { MoonNakshatra = n.GetIntValue(); } },
105130
{ "nakshatraLord", n => { NakshatraLord = n.GetEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_nakshatraLord>(); } },
106131
{ "nakshatraName", n => { NakshatraName = n.GetStringValue(); } },
107132
{ "pratyantardasha", n => { Pratyantardasha = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_pratyantardasha>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_pratyantardasha.CreateFromDiscriminatorValue); } },
108133
{ "remainingInAntardasha", n => { RemainingInAntardasha = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInAntardasha>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInAntardasha.CreateFromDiscriminatorValue); } },
109134
{ "remainingInMahadasha", n => { RemainingInMahadasha = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInMahadasha>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInMahadasha.CreateFromDiscriminatorValue); } },
110135
{ "remainingInPratyantardasha", n => { RemainingInPratyantardasha = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInPratyantardasha>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInPratyantardasha.CreateFromDiscriminatorValue); } },
136+
{ "remainingInSookshma", n => { RemainingInSookshma = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInSookshma>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInSookshma.CreateFromDiscriminatorValue); } },
137+
{ "sookshmaDasha", n => { SookshmaDasha = n.GetObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_sookshmaDasha>(global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_sookshmaDasha.CreateFromDiscriminatorValue); } },
111138
};
112139
}
113140
/// <summary>
@@ -118,14 +145,19 @@ public virtual void Serialize(ISerializationWriter writer)
118145
{
119146
if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer));
120147
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha>("antardasha", Antardasha);
148+
writer.WriteDoubleValue("ayanamsa", Ayanamsa);
149+
writer.WriteEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_ayanamsaType>("ayanamsaType", AyanamsaType);
121150
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_mahadasha>("mahadasha", Mahadasha);
151+
writer.WriteDoubleValue("moonLongitude", MoonLongitude);
122152
writer.WriteIntValue("moonNakshatra", MoonNakshatra);
123153
writer.WriteEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_nakshatraLord>("nakshatraLord", NakshatraLord);
124154
writer.WriteStringValue("nakshatraName", NakshatraName);
125155
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_pratyantardasha>("pratyantardasha", Pratyantardasha);
126156
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInAntardasha>("remainingInAntardasha", RemainingInAntardasha);
127157
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInMahadasha>("remainingInMahadasha", RemainingInMahadasha);
128158
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInPratyantardasha>("remainingInPratyantardasha", RemainingInPratyantardasha);
159+
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_remainingInSookshma>("remainingInSookshma", RemainingInSookshma);
160+
writer.WriteObjectValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_sookshmaDasha>("sookshmaDasha", SookshmaDasha);
129161
writer.WriteAdditionalData(AdditionalData);
130162
}
131163
}

src/Generated/VedicAstrology/Dasha/Current/CurrentPostResponse_antardasha.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,14 @@ public partial class CurrentPostResponse_antardasha : IAdditionalDataHolder, IPa
3535
#endif
3636
/// <summary>Parent Mahadasha lord under which this Antardasha sub-period runs.</summary>
3737
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha_mahadashaLord? MahadashaLord { get; set; }
38+
/// <summary>Theoretical start of this period, present ONLY when the birth date truncated it. The Vimshottari cycle is already running when a native is born, so the period in force at birth began earlier: startDate is clipped to the birth moment while this field keeps the real start. Its presence is also why the first period of a chart can contain fewer than 9 sub-periods, the earlier ones having finished before birth. Absent on every period that runs its full length.</summary>
39+
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
40+
#nullable enable
41+
public string? NominalStartDate { get; set; }
42+
#nullable restore
43+
#else
44+
public string NominalStartDate { get; set; }
45+
#endif
3846
/// <summary>Ruling graha of this Vimshottari dasha period. One of 9 planets in the Ketu-Venus-Sun-Moon-Mars-Rahu-Jupiter-Saturn-Mercury sequence.</summary>
3947
public global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha_planet? Planet { get; set; }
4048
/// <summary>Start datetime of this dasha period. Adjusted to the requested timezone offset.</summary>
@@ -74,6 +82,7 @@ public virtual IDictionary<string, Action<IParseNode>> GetFieldDeserializers()
7482
{ "endDate", n => { EndDate = n.GetStringValue(); } },
7583
{ "interpretation", n => { Interpretation = n.GetStringValue(); } },
7684
{ "mahadashaLord", n => { MahadashaLord = n.GetEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha_mahadashaLord>(); } },
85+
{ "nominalStartDate", n => { NominalStartDate = n.GetStringValue(); } },
7786
{ "planet", n => { Planet = n.GetEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha_planet>(); } },
7887
{ "startDate", n => { StartDate = n.GetStringValue(); } },
7988
};
@@ -89,6 +98,7 @@ public virtual void Serialize(ISerializationWriter writer)
8998
writer.WriteStringValue("endDate", EndDate);
9099
writer.WriteStringValue("interpretation", Interpretation);
91100
writer.WriteEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha_mahadashaLord>("mahadashaLord", MahadashaLord);
101+
writer.WriteStringValue("nominalStartDate", NominalStartDate);
92102
writer.WriteEnumValue<global::RoxyApi.VedicAstrology.Dasha.Current.CurrentPostResponse_antardasha_planet>("planet", Planet);
93103
writer.WriteStringValue("startDate", StartDate);
94104
writer.WriteAdditionalData(AdditionalData);
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// <auto-generated/>
2+
using System.Runtime.Serialization;
3+
using System;
4+
namespace RoxyApi.VedicAstrology.Dasha.Current
5+
{
6+
/// <summary>Ayanamsa system used, echoing the request field. One of &quot;lahiri&quot;, &quot;kp-newcomb&quot;, &quot;kp-old&quot;. Echoed so a client can confirm which frame produced these dates without re-deriving it.</summary>
7+
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
8+
public enum CurrentPostResponse_ayanamsaType
9+
{
10+
[EnumMember(Value = "kp-newcomb")]
11+
#pragma warning disable CS1591
12+
KpNewcomb,
13+
#pragma warning restore CS1591
14+
[EnumMember(Value = "kp-old")]
15+
#pragma warning disable CS1591
16+
KpOld,
17+
#pragma warning restore CS1591
18+
[EnumMember(Value = "lahiri")]
19+
#pragma warning disable CS1591
20+
Lahiri,
21+
#pragma warning restore CS1591
22+
}
23+
}

0 commit comments

Comments
 (0)