/**
 * Proposal templates schema — proposal-editor (wave-11 leaf C).
 *
 * Tables:
 *  - proposal_templates: reusable proposal content templates (system + per-tenant)
 *
 * NULL tenant_id = system template available to all tenants.
 */
import {
  pgTable,
  uuid,
  text,
  jsonb,
  timestamp,
  index,
} from 'drizzle-orm/pg-core'
import { tenants } from './tenants'
import { users } from './users'

// ── proposal_templates ────────────────────────────────────────────────────────

export const proposalTemplates = pgTable(
  'proposal_templates',
  {
    id: uuid('id').primaryKey().defaultRandom(),
    // NULL = system template available to all tenants
    tenantId: uuid('tenant_id').references(() => tenants.id, { onDelete: 'cascade' }),
    name: text('name').notNull(),
    content: jsonb('content').notNull().default({}),
    createdBy: uuid('created_by').references(() => users.id),
    createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
  },
  (t) => ({
    tenantIdx: index('idx_proposal_templates_tenant').on(t.tenantId),
  }),
)

export type ProposalTemplateRow = typeof proposalTemplates.$inferSelect
export type NewProposalTemplate = typeof proposalTemplates.$inferInsert
