import type { ColumnType, Generated, Insertable, Selectable, Updateable } from "kysely"; export type Timestamp = ColumnType; export type NullableTimestamp = ColumnType< Date | null, Date | string | null | undefined, Date | string | null >; export type DateString = ColumnType; export type Json = JsonValue; export type JsonValue = | string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue }; export interface InvitationsTable { id: Generated; token: string; display_name: string; language: string; contact_email: string | null; contact_phone: string | null; max_party_size: number; allow_member_edits: boolean; save_the_date_sent_at: NullableTimestamp; notes: string | null; created_at: Timestamp; updated_at: Timestamp; } export interface InvitationMembersTable { id: Generated; invitation_id: string; name: string; is_primary_contact: boolean; attending: boolean | null; meal_preference: string | null; dietary_restrictions: string | null; notes: string | null; created_at: Timestamp; updated_at: Timestamp; } export interface InvitationResponsesTable { id: Generated; invitation_id: string; submitted_at: NullableTimestamp; arrival_date: DateString | null; departure_date: DateString | null; stay_location: string | null; needs_transport_help: boolean | null; message_to_couple: string | null; created_at: Timestamp; updated_at: Timestamp; } export interface PhotoUploadsTable { id: Generated; invitation_id: string; bucket: string; object_key: string; original_filename: string | null; content_type: string | null; size_bytes: number | null; created_at: Timestamp; updated_at: Timestamp; } export interface ToastRequestsTable { id: Generated; invitation_id: string; member_id: string | null; speaker_name: string; estimated_minutes: number | null; status: string; created_at: Timestamp; updated_at: Timestamp; } export interface AdminAuditEventsTable { id: Generated; admin_email: string; action: string; target_type: string | null; target_id: string | null; metadata: Json | null; created_at: Timestamp; } export interface Database { invitations: InvitationsTable; invitation_members: InvitationMembersTable; invitation_responses: InvitationResponsesTable; photo_uploads: PhotoUploadsTable; toast_requests: ToastRequestsTable; admin_audit_events: AdminAuditEventsTable; } export type Invitation = Selectable; export type NewInvitation = Insertable; export type InvitationUpdate = Updateable; export type InvitationMember = Selectable; export type NewInvitationMember = Insertable; export type InvitationMemberUpdate = Updateable; export type InvitationResponse = Selectable; export type NewInvitationResponse = Insertable; export type InvitationResponseUpdate = Updateable; export type PhotoUpload = Selectable; export type NewPhotoUpload = Insertable; export type PhotoUploadUpdate = Updateable; export type ToastRequest = Selectable; export type NewToastRequest = Insertable; export type ToastRequestUpdate = Updateable;