export interface ProvidentFundEmployee {
  employee_id: string;
  staff_id: string;
  firstname: string;
  lastname: string;
  full_name: string;
}

export interface PensionAllocationProfileSummary {
  id: string;
  code: string;
  name: string;
}

export interface ProvidentFundOverride {
  id: string;
  employee_id: string;
  employee?: ProvidentFundEmployee;
  staff_pf_percentage: string | null;
  employer_pf_percentage: string | null;
  pension_allocation_profile_id: string | null;
  pension_pool_id: string | null;
  pension_allocation_profile?: PensionAllocationProfileSummary | null;
  effective_date: string | null;
  end_date: string | null;
  created_at: string;
  updated_at: string;
}

export interface CreateProvidentFundEnrollmentPayload {
  employee_id: string;
  pension_allocation_profile_id?: string | null;
  pension_pool_id?: string | null;
  staff_pf_percentage?: number | null;
  employer_pf_percentage?: number | null;
  effective_date: string;
  end_date?: string | null;
}

export interface UpdateProvidentFundOverridePayload {
  employee_id: string;
  pension_allocation_profile_id?: string | null;
  pension_pool_id?: string | null;
  staff_pf_percentage?: number | null;
  employer_pf_percentage?: number | null;
  effective_date: string;
  end_date?: string | null;
}

export interface BulkUpdateProvidentFundPayload {
  effective_date: string;
  end_date?: string | null;
  overrides: {
    employee_id: string;
    pension_allocation_profile_id?: string | null;
    pension_pool_id?: string | null;
    staff_pf_percentage?: number | null;
    employer_pf_percentage?: number | null;
  }[];
}

export interface ProvidentFundPaginatedResponse {
  data: ProvidentFundOverride[];
  meta: {
    current_page: number;
    last_page: number;
    per_page: number;
    total: number;
  };
}
