import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

// Status options shown in the cylinder filter. `value` is what the
// backend list endpoint expects; `label` is what the UI displays.
const STATUS_MASTERS = [
  { value: 'NEW', label: 'NEW', sortOrder: 1 },
  { value: 'ASSIGNED', label: 'ASSIGNED', sortOrder: 2 },
  { value: 'INSIDE', label: 'INSIDE', sortOrder: 3 },
  { value: 'OUTSIDE', label: 'OUTSIDE', sortOrder: 4 },
  { value: 'OUTSIDE (W/O Client)', label: 'OUTSIDE (W/O Client)', sortOrder: 5 },
];

// Movement options shown in the cylinder movement-history filter.
const MOVEMENT_MASTERS = [
  { value: 'NEW', label: 'NEW', sortOrder: 1 },
  { value: 'INSIDE', label: 'INSIDE', sortOrder: 2 },
  { value: 'OUTSIDE', label: 'OUTSIDE', sortOrder: 3 },
];

async function upsertMasters(type: string, masters: { value: string; label: string; sortOrder: number }[]) {
  for (const m of masters) {
    await prisma.masters.upsert({
      where: { type_value: { type, value: m.value } },
      update: { label: m.label, sortOrder: m.sortOrder, isActive: true },
      create: { type, value: m.value, label: m.label, sortOrder: m.sortOrder },
    });
  }
}

async function main() {
  await upsertMasters('status', STATUS_MASTERS);
  await upsertMasters('movement', MOVEMENT_MASTERS);
  console.log('Seeded status & movement masters.');
}

main().finally(() => prisma.$disconnect());
