feat(chart): Moon chart from D1 and transit chart for today in the natal houses (T4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-09-28 15:33:30 +08:00
co-authored by Claude Opus 5.5
parent 2071dc7c18
commit 3f6bcb081a
17 changed files with 552 additions and 74 deletions
+1 -17
View File
@@ -13,6 +13,7 @@ import {
import { dailyProfilePayload } from "@/lib/global-birth-payloads";
import { consumeUserRequestRateLimit } from "@/lib/request-rate-limit";
import { globalBirthProfileFromAccountRow } from "@/lib/server-owned-birth-profile";
import { transitChartBody } from "@/lib/transit-chart-body";
import { ConsultationSubjectError, loadSubjectBirth, subjectIdFromQuery } from "@/lib/subject-birth";
import { createServerSupabaseClient } from "@/lib/supabase/server";
@@ -215,20 +216,3 @@ export async function GET(request: Request) {
}
return NextResponse.json(parsed.data);
}
function transitChartBody(birth: BirthPayload, date: string): Record<string, unknown> {
const [year, month, day] = date.split("-").map(Number);
return {
year,
month,
day,
hour: 12,
minute: 0,
lat: birth.lat,
lon: birth.lon,
tz: birth.tz,
ayanamsa: birth.ayanamsa,
node_mode: birth.node_mode,
skip_vedastro_main_entry_overview: true,
};
}
+6 -2
View File
@@ -5087,7 +5087,10 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
}
}
@media print { .chart-page-type-sheet { display: none !important; } }
.chart-page-precision-hint { margin: 0 0 var(--space-2); }
.chart-page-precision-hint,
.chart-page-table-note { margin: 0 0 var(--space-2); }
/* A note + table pair is one grid item, so the table keeps its own scroll box. */
.chart-page-varga-table-block { min-width: 0; }
.chart-page-waiting-plot {
width: min(100%, 400px);
min-width: 0;
@@ -5485,7 +5488,8 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
}
/* Chart and parameters sit side by side; the planet table is a full-width
row under both, because its columns need the whole measure. */
.chart-page-planet-table-wrap { grid-column: 1 / -1; }
.chart-page-planet-table-wrap,
.chart-page-varga-table-block { grid-column: 1 / -1; }
.chart-page-basics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}