export interface LoanRepayment {
  id: string;
  loan_id: string;
  payroll_run_id: string | null;
  amount: string;
  payment_date: string;
  payment_method: 'payroll' | 'manual';
  created_at: string;
  updated_at: string;
}

export interface Loan {
  id: string;
  employee_id: string;
  loan_type: string;
  principal_amount: string;
  interest_rate: string;
  monthly_deduction: string;
  total_paid: string;
  balance: string;
  start_date: string;
  expected_end_date: string;
  status: 'active' | 'completed' | 'suspended' | 'written_off';
  approved_by: string | null;
  employee?: {
    employee_id: string;
    firstname?: string;
    lastname?: string;
    first_name?: string;
    last_name?: string;
    full_name?: string;
    staff_id: string;
  };
  approver?: {
    id: string;
    name: string;
  };
  repayments?: LoanRepayment[];
  repayments_count?: number;
  created_at: string;
  updated_at: string;
}

export interface CreateLoanPayload {
  employee_id: string;
  loan_type: string;
  principal_amount: number;
  interest_rate: number;
  monthly_deduction: number;
  start_date: string;
  expected_end_date: string;
}

export interface UpdateLoanPayload {
  id: string;
  loan_type?: string;
  monthly_deduction?: number;
  status?: 'active' | 'completed' | 'suspended' | 'written_off';
  expected_end_date?: string;
}

export interface DeleteLoanPayload {
  message: string;
  id?: string;
}

export interface CreateLoanRepaymentPayload {
  loan_id: string;
  amount: number;
  payment_date: string;
  payment_method?: 'payroll' | 'manual';
}
