/**
 * Default Organization Seed
 *
 * 幂等地建一条 default Faraday Future organization。
 *
 * 理由：FFAI 是 multi-org 内部工具，几乎所有 API 都要求 `X-Organization-Id` header。
 * 没有任何 org 的 dev / test DB 上，前端 OrganizationContext 选不到 org →
 * X-Organization-Id 永远不发 → 所有业务 API 400「organizationId required」。
 *
 * 详见 .learnings/ERRORS/ERR-20260518-004-reset-db-missing-organization-seed.md
 *
 * 幂等策略：`code='FF'` UNIQUE，已存在跳过。生产 org 由 SAP / dingtalk sync 流程建，
 * 这里只是兜底"裸 DB 也能登录用"。
 */

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

const DEFAULT_ORG = {
  code: 'FF',
  name: 'Faraday Future',
  displayName: 'Faraday Future',
};

export async function seedDefaultOrganization(prisma: PrismaClient): Promise<void> {
  const existing = await prisma.organization.findFirst({
    where: { code: DEFAULT_ORG.code },
    select: { id: true },
  });
  if (existing) {
    console.log(`  ✓ default organization '${DEFAULT_ORG.code}' already exists (${existing.id})`);
    return;
  }
  const created = await prisma.organization.create({
    data: {
      code: DEFAULT_ORG.code,
      name: DEFAULT_ORG.name,
      displayName: DEFAULT_ORG.displayName,
      settings: {},
      financialConfig: {},
      complianceConfig: {},
      status: 'ACTIVE',
      isActive: true,
      order: 1,
      metadata: {},
    },
    select: { id: true, code: true },
  });
  console.log(`  ✓ default organization created: ${created.code} (${created.id})`);
}
