/**
 * tenant_export_jobs schema — audit-compliance (wave-11 leaf-D).
 * Tracks async GDPR data export requests.
 * DDL is in raw SQL migration 0015_audit_log.sql.
 */
import { pgTable, uuid, text, timestamp, check } from 'drizzle-orm/pg-core'
import { sql } from 'drizzle-orm'

export const tenantExportJobs = pgTable(
  'tenant_export_jobs',
  {
    id:          uuid('id').primaryKey().defaultRandom(),
    tenantId:    uuid('tenant_id').notNull(),
    status:      text('status').notNull().default('PENDING'),
    r2Key:       text('r2_key'),
    createdBy:   uuid('created_by'),
    createdAt:   timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
    completedAt: timestamp('completed_at', { withTimezone: true }),
  },
  (t) => ({
    statusCheck: check(
      'tenant_export_jobs_status_check',
      sql`${t.status} IN ('PENDING', 'PROCESSING', 'DONE', 'FAILED')`,
    ),
  }),
)

export type TenantExportJobRow = typeof tenantExportJobs.$inferSelect
export type NewTenantExportJob = typeof tenantExportJobs.$inferInsert
