import { db } from "@/lib/db/client" import type { PhotoUpload } from "@/lib/db/types" export async function getPhotoUploadByInvitationId( invitationId: string, ): Promise { return ( (await db .selectFrom("photo_uploads") .selectAll() .where("invitation_id", "=", invitationId) .executeTakeFirst()) ?? null ) } export async function upsertPhotoUpload(input: { invitationId: string bucket: string objectKey: string originalFilename: string contentType: string sizeBytes: number }) { return db .insertInto("photo_uploads") .values({ invitation_id: input.invitationId, bucket: input.bucket, object_key: input.objectKey, original_filename: input.originalFilename, content_type: input.contentType, size_bytes: input.sizeBytes, }) .onConflict((oc) => oc.column("invitation_id").doUpdateSet({ bucket: input.bucket, object_key: input.objectKey, original_filename: input.originalFilename, content_type: input.contentType, size_bytes: input.sizeBytes, updated_at: new Date(), }), ) .returningAll() .executeTakeFirstOrThrow() }