/** * Payroll settings types for organisation onboarding. */ // ── Database row type ──────────────────────────────────────── export interface PayrollSettings { id: string; organisation_id: string; country_code: string; country_name: string; currency: string; is_natively_supported: boolean; // US-specific state_code: string | null; state_name: string | null; state_tax_rate: number | null; // Singapore-specific is_singapore_citizen_or_pr: boolean | null; // Manual/flat-rate (EU + others) flat_income_tax_rate: number | null; employer_pension_rate: number | null; employer_tax_rate: number | null; tax_free_allowance: number | null; created_at: string; updated_at: string; } // ── Country list with metadata ─────────────────────────────── export interface CountryOption { code: string; name: string; mode: "native" | "eu" | "manual"; badge?: string; } export const NATIVE_COUNTRIES: CountryOption[] = [ { code: "AU", name: "Australia", mode: "native", badge: "ATO PAYG + Medicare + Super" }, { code: "US", name: "United States", mode: "native", badge: "IRS Federal + State" }, { code: "GB", name: "United Kingdom", mode: "native", badge: "HMRC PAYE + National Insurance" }, { code: "CA", name: "Canada", mode: "native", badge: "CRA Federal + CPP + EI" }, { code: "NZ", name: "New Zealand", mode: "native", badge: "IRD PAYE + ACC" }, { code: "SG", name: "Singapore", mode: "native", badge: "IRAS + CPF" }, ]; export const EU_COUNTRIES: CountryOption[] = [ { code: "DE", name: "Germany", mode: "eu" }, { code: "FR", name: "France", mode: "eu" }, { code: "ES", name: "Spain", mode: "eu" }, { code: "IT", name: "Italy", mode: "eu" }, { code: "IE", name: "Ireland", mode: "eu" }, { code: "NL", name: "Netherlands", mode: "eu" }, { code: "BE", name: "Belgium", mode: "eu" }, { code: "AT", name: "Austria", mode: "eu" }, { code: "PT", name: "Portugal", mode: "eu" }, { code: "FI", name: "Finland", mode: "eu" }, { code: "SE", name: "Sweden", mode: "eu" }, { code: "DK", name: "Denmark", mode: "eu" }, { code: "NO", name: "Norway", mode: "eu" }, { code: "PL", name: "Poland", mode: "eu" }, ]; export const ALL_COUNTRIES: CountryOption[] = [ ...NATIVE_COUNTRIES, ...EU_COUNTRIES, // Manual — other countries can use this ]; export function getCountryOption(code: string): CountryOption | undefined { return ALL_COUNTRIES.find((c) => c.code === code) ?? { code, name: code, mode: "manual", }; } export function isNativeSupported(code: string): boolean { return NATIVE_COUNTRIES.some((c) => c.code === code); } export function isEUCountry(code: string): boolean { return EU_COUNTRIES.some((c) => c.code === code); } // ── US State list ──────────────────────────────────────────── export interface USState { code: string; name: string; defaultTaxRate: number; hasStateTax: boolean; } export const US_STATES: USState[] = [ { code: "AL", name: "Alabama", defaultTaxRate: 0.05, hasStateTax: true }, { code: "AK", name: "Alaska", defaultTaxRate: 0, hasStateTax: false }, { code: "AZ", name: "Arizona", defaultTaxRate: 0.025, hasStateTax: true }, { code: "AR", name: "Arkansas", defaultTaxRate: 0.055, hasStateTax: true }, { code: "CA", name: "California", defaultTaxRate: 0.093, hasStateTax: true }, { code: "CO", name: "Colorado", defaultTaxRate: 0.044, hasStateTax: true }, { code: "CT", name: "Connecticut", defaultTaxRate: 0.055, hasStateTax: true }, { code: "DE", name: "Delaware", defaultTaxRate: 0.055, hasStateTax: true }, { code: "FL", name: "Florida", defaultTaxRate: 0, hasStateTax: false }, { code: "GA", name: "Georgia", defaultTaxRate: 0.0575, hasStateTax: true }, { code: "HI", name: "Hawaii", defaultTaxRate: 0.076, hasStateTax: true }, { code: "ID", name: "Idaho", defaultTaxRate: 0.058, hasStateTax: true }, { code: "IL", name: "Illinois", defaultTaxRate: 0.0495, hasStateTax: true }, { code: "IN", name: "Indiana", defaultTaxRate: 0.0315, hasStateTax: true }, { code: "IA", name: "Iowa", defaultTaxRate: 0.06, hasStateTax: true }, { code: "KS", name: "Kansas", defaultTaxRate: 0.0525, hasStateTax: true }, { code: "KY", name: "Kentucky", defaultTaxRate: 0.045, hasStateTax: true }, { code: "LA", name: "Louisiana", defaultTaxRate: 0.0425, hasStateTax: true }, { code: "ME", name: "Maine", defaultTaxRate: 0.065, hasStateTax: true }, { code: "MD", name: "Maryland", defaultTaxRate: 0.0575, hasStateTax: true }, { code: "MA", name: "Massachusetts", defaultTaxRate: 0.05, hasStateTax: true }, { code: "MI", name: "Michigan", defaultTaxRate: 0.0425, hasStateTax: true }, { code: "MN", name: "Minnesota", defaultTaxRate: 0.0785, hasStateTax: true }, { code: "MS", name: "Mississippi", defaultTaxRate: 0.05, hasStateTax: true }, { code: "MO", name: "Missouri", defaultTaxRate: 0.054, hasStateTax: true }, { code: "MT", name: "Montana", defaultTaxRate: 0.0675, hasStateTax: true }, { code: "NE", name: "Nebraska", defaultTaxRate: 0.052, hasStateTax: true }, { code: "NV", name: "Nevada", defaultTaxRate: 0, hasStateTax: false }, { code: "NH", name: "New Hampshire", defaultTaxRate: 0, hasStateTax: false }, { code: "NJ", name: "New Jersey", defaultTaxRate: 0.0637, hasStateTax: true }, { code: "NM", name: "New Mexico", defaultTaxRate: 0.049, hasStateTax: true }, { code: "NY", name: "New York", defaultTaxRate: 0.0635, hasStateTax: true }, { code: "NC", name: "North Carolina", defaultTaxRate: 0.0475, hasStateTax: true }, { code: "ND", name: "North Dakota", defaultTaxRate: 0.02, hasStateTax: true }, { code: "OH", name: "Ohio", defaultTaxRate: 0.035, hasStateTax: true }, { code: "OK", name: "Oklahoma", defaultTaxRate: 0.0475, hasStateTax: true }, { code: "OR", name: "Oregon", defaultTaxRate: 0.0875, hasStateTax: true }, { code: "PA", name: "Pennsylvania", defaultTaxRate: 0.0307, hasStateTax: true }, { code: "RI", name: "Rhode Island", defaultTaxRate: 0.0475, hasStateTax: true }, { code: "SC", name: "South Carolina", defaultTaxRate: 0.064, hasStateTax: true }, { code: "SD", name: "South Dakota", defaultTaxRate: 0, hasStateTax: false }, { code: "TN", name: "Tennessee", defaultTaxRate: 0, hasStateTax: false }, { code: "TX", name: "Texas", defaultTaxRate: 0, hasStateTax: false }, { code: "UT", name: "Utah", defaultTaxRate: 0.0465, hasStateTax: true }, { code: "VT", name: "Vermont", defaultTaxRate: 0.06, hasStateTax: true }, { code: "VA", name: "Virginia", defaultTaxRate: 0.0575, hasStateTax: true }, { code: "WA", name: "Washington", defaultTaxRate: 0, hasStateTax: false }, { code: "WV", name: "West Virginia", defaultTaxRate: 0.0475, hasStateTax: true }, { code: "WI", name: "Wisconsin", defaultTaxRate: 0.053, hasStateTax: true }, { code: "WY", name: "Wyoming", defaultTaxRate: 0, hasStateTax: false }, { code: "DC", name: "District of Columbia", defaultTaxRate: 0.065, hasStateTax: true }, ];