/**
 * Contractor settings shared types — contractor-settings (wave-11 leaf-E).
 */
import { z } from 'zod'

export interface ContractorSettings {
  contractor_portal_enabled: boolean
  contractor_portal_show_billing: boolean
  contractor_require_time_approval: boolean
  contractor_approval_deadline_days: number
  contractor_payout_period: 'weekly' | 'biweekly' | 'monthly'
  contractor_withholding_note: string | null
}

export const updateContractorSettingsSchema = z
  .object({
    contractor_portal_enabled: z.boolean().optional(),
    contractor_portal_show_billing: z.boolean().optional(),
    contractor_require_time_approval: z.boolean().optional(),
    contractor_approval_deadline_days: z.number().int().min(0).optional(),
    contractor_payout_period: z.enum(['weekly', 'biweekly', 'monthly']).optional(),
    contractor_withholding_note: z.string().trim().max(500).nullable().optional(),
  })
  .strict()

export type UpdateContractorSettings = z.infer<typeof updateContractorSettingsSchema>
