feat: map shapes, image persistence, grab tool, layer rename/delete, i18n, page metadata
This commit is contained in:
@@ -108,6 +108,70 @@ export async function deleteSponsorTier(
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Event-wide Tier + Sponsor fetching
|
||||
// ============================================================
|
||||
|
||||
export async function fetchEventSponsorTiers(
|
||||
supabase: SupabaseClient,
|
||||
eventId: string
|
||||
): Promise<SponsorTier[]> {
|
||||
const { data, error } = await db(supabase)
|
||||
.from('sponsor_tiers')
|
||||
.select('*, event_departments!inner(event_id)')
|
||||
.eq('event_departments.event_id', eventId)
|
||||
.order('sort_order');
|
||||
|
||||
if (error) {
|
||||
log.error('fetchEventSponsorTiers failed', { error, data: { eventId } });
|
||||
throw error;
|
||||
}
|
||||
return (data ?? []).map((d: any) => {
|
||||
const { event_departments, ...tier } = d;
|
||||
return tier;
|
||||
}) as SponsorTier[];
|
||||
}
|
||||
|
||||
export async function fetchEventSponsors(
|
||||
supabase: SupabaseClient,
|
||||
eventId: string
|
||||
): Promise<Sponsor[]> {
|
||||
const { data, error } = await db(supabase)
|
||||
.from('sponsors')
|
||||
.select('*, event_departments!inner(event_id)')
|
||||
.eq('event_departments.event_id', eventId)
|
||||
.order('name');
|
||||
|
||||
if (error) {
|
||||
log.error('fetchEventSponsors failed', { error, data: { eventId } });
|
||||
throw error;
|
||||
}
|
||||
return (data ?? []).map((d: any) => {
|
||||
const { event_departments, ...sponsor } = d;
|
||||
return sponsor;
|
||||
}) as Sponsor[];
|
||||
}
|
||||
|
||||
export async function fetchEventDeliverables(
|
||||
supabase: SupabaseClient,
|
||||
eventId: string
|
||||
): Promise<SponsorDeliverable[]> {
|
||||
const { data, error } = await db(supabase)
|
||||
.from('sponsor_deliverables')
|
||||
.select('*, sponsors!inner(department_id, event_departments!inner(event_id))')
|
||||
.eq('sponsors.event_departments.event_id', eventId)
|
||||
.order('sort_order');
|
||||
|
||||
if (error) {
|
||||
log.error('fetchEventDeliverables failed', { error, data: { eventId } });
|
||||
throw error;
|
||||
}
|
||||
return (data ?? []).map((d: any) => {
|
||||
const { sponsors, ...del } = d;
|
||||
return del;
|
||||
}) as SponsorDeliverable[];
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Sponsors
|
||||
// ============================================================
|
||||
|
||||
Reference in New Issue
Block a user