fix(chart): keep account and chart-view birth truth consistent

This commit is contained in:
jesse-ux
2026-09-22 12:14:50 +08:00
parent dd4141a030
commit cc7ef8a339
21 changed files with 1243 additions and 90 deletions
+9 -2
View File
@@ -8,6 +8,7 @@ import {
resolveAccountBirthTimeApplicationPatch,
resolveAppliedAccountBirthTime,
} from "@/lib/account-profile-patch";
import { chartBirthAfterAccountWrite, resolveServerOwnedChartBirth } from "@/lib/chart-birth-truth";
import { optionalBeamAvatarFromProfile } from "@/lib/beam-avatar";
import { createAdminSupabaseClient, isAdminUser } from "@/lib/supabase/admin";
import {
@@ -160,6 +161,7 @@ export async function GET() {
latitude: profile.latitude ?? null,
longitude: profile.longitude ?? null,
},
chartBirth: resolveServerOwnedChartBirth(profile),
});
} catch (error) {
if (isSupabaseConfigurationError(error)) {
@@ -292,14 +294,14 @@ export async function PATCH(request: Request) {
return admin
.from("profiles")
.upsert(values, { onConflict: "id" })
.select("id,birth_time_status,active_birth_time,active_birth_date,active_birth_timezone_offset")
.select("id,birth_time_status,active_birth_time,active_birth_date,active_birth_timezone_offset,active_birth_provenance,birth_date,reported_birth_time,birth_time,timezone_offset,timezone_id,latitude,longitude,ayanamsa")
.maybeSingle();
}
let query = admin.from("profiles").update(values).eq("id", userId);
if (invalidatesUnconfirmedApplication) {
query = applyAccountProfileConcurrencyGuards(query, currentProfile);
}
return query.select("id,birth_time_status,active_birth_time,active_birth_date,active_birth_timezone_offset").maybeSingle();
return query.select("id,birth_time_status,active_birth_time,active_birth_date,active_birth_timezone_offset,active_birth_provenance,birth_date,reported_birth_time,birth_time,timezone_offset,timezone_id,latitude,longitude,ayanamsa").maybeSingle();
}
let { data, error } = await writeProfile(withCoordinates);
@@ -352,6 +354,11 @@ export async function PATCH(request: Request) {
activeDate: data.active_birth_date ?? null,
activeTimezoneOffset: data.active_birth_timezone_offset ?? null,
},
chartBirth: chartBirthAfterAccountWrite({
current: currentProfile,
written: withCoordinates,
returned: data,
}),
});
} catch (error) {
if (isSupabaseConfigurationError(error)) {