import type { DrizzleClient } from '@/server/db/client.js';
import { adminAssignments } from '@/server/db/schema.js';

type AssignmentScope = 'support_ticket' | 'vendor_application' | 'dispute' | 'flagged_content';

export async function upsertAssignment(
  db: DrizzleClient,
  input: { scope: AssignmentScope; entityId: string; adminUserId: string },
): Promise<void> {
  await db
    .insert(adminAssignments)
    .values(input)
    .onConflictDoUpdate({
      target: [adminAssignments.scope, adminAssignments.entityId],
      set: { adminUserId: input.adminUserId, assignedAt: new Date() },
    });
}
