const baseURL = import.meta.env.VITE_API_BASE_URL;

let reconciliation = {
  // Lấy danh sách khách hàng cần đối soát từ API CustomerReconciliationSlip
  getCustomersOverview: `${baseURL}/CustomerReconciliationSlip/GetCustomersOverview`,

  // Lấy danh sách khách hàng cần đối soát (API cũ)
  getCustomersForReconciliation: `${baseURL}/Reconciliation/GetCustomersForReconciliation`,

  // Tìm kiếm danh sách khách hàng cần đối soát (API mới) - với ReconciliationType
  searchCustomersForReconciliation: (reconciliationType) =>
    `${baseURL}/Reconciliation/SearchCustomersForReconciliation?reconciliationType=${reconciliationType}`,

  // Lấy danh sách đơn hàng có thể đối soát (API cũ)
  getReconciliableOrders: `${baseURL}/Reconciliation/GetReconciliableOrders`,

  // Lấy danh sách đơn hàng có thể đối soát theo khách hàng (CustomerReconciliationSlip)
  getReconciliableOrdersByCustomerId: (customerId) =>
    `${baseURL}/CustomerReconciliationSlip/GetReconciliableOrders?customerId=${customerId}`,

  // Tạo phiếu đối soát khách hàng (CustomerReconciliationSlip)
  createCustomerReconciliationSlip: `${baseURL}/CustomerReconciliationSlip/Create`,

  // Tìm kiếm danh sách phiếu đối soát khách hàng (CustomerReconciliationSlip)
  searchCustomerReconciliationSlips: `${baseURL}/CustomerReconciliationSlip/Search`,

  // Lấy chi tiết phiếu đối soát khách hàng theo ID (CustomerReconciliationSlip)
  getCustomerReconciliationSlipById: (id) =>
    `${baseURL}/CustomerReconciliationSlip/GetById/${id}`,

  // Tìm kiếm danh sách đơn hàng có thể đối soát (API mới) - với ReconciliationType
  searchReconciliableOrders: (reconciliationType) =>
    `${baseURL}/Reconciliation/SearchReconciliableOrders?reconciliationType=${reconciliationType}`,

  // Tạo đối soát mới - với ReconciliationType
  create: (reconciliationType) =>
    `${baseURL}/Reconciliation/Create?reconciliationType=${reconciliationType}`,

  // Tìm kiếm phiếu đối soát - với ReconciliationType
  search: (reconciliationType) =>
    `${baseURL}/Reconciliation/Search?reconciliationType=${reconciliationType}`,

  // Lấy chi tiết phiếu đối soát
  getById: `${baseURL}/Reconciliation/GetById?id=`,

  // Xác nhận phiếu đối soát
  confirm: `${baseURL}/Reconciliation/Confirm`,

  // Đánh dấu đã chuyển tiền (API cũ)
  markAsTransferred: `${baseURL}/Reconciliation/MarkAsTransferred`,

  // Cập nhật đã chuyển tiền (API mới)
  updateTransferred: `${baseURL}/Reconciliation/UpdateTransferred`,

  // Hủy phiếu đối soát
  cancel: `${baseURL}/Reconciliation/Cancel`,

  // Xuất Excel - với ReconciliationType
  export: (reconciliationType) =>
    `${baseURL}/Reconciliation/Export?reconciliationType=${reconciliationType}`,

  // Duyệt phiếu đối soát khách hàng (CustomerReconciliationSlip)
  approveCustomerReconciliationSlip: (id) =>
    `${baseURL}/CustomerReconciliationSlip/Approve/${id}`,

  // Từ chối phiếu đối soát khách hàng (CustomerReconciliationSlip)
  // POST with body: { Id, Reason }
  rejectCustomerReconciliationSlip: `${baseURL}/CustomerReconciliationSlip/Reject`,

  // Hoàn thành phiếu đối soát khách hàng (CustomerReconciliationSlip)
  // POST with body: { Id, PaymentMethod, TransactionCode, ProofImageUrl, Note }
  completeCustomerReconciliationSlip: `${baseURL}/CustomerReconciliationSlip/Complete`,

  // Xuất Excel danh sách phiếu đối soát
  exportCustomerReconciliationSlipList: `${baseURL}/CustomerReconciliationSlip/ExportExcel`,

  // Xuất Excel chi tiết phiếu đối soát
  exportCustomerReconciliationSlipDetail: (id) =>
    `${baseURL}/CustomerReconciliationSlip/ExportExcelDetail/${id}`,

  // Xuất Excel danh sách đơn hàng cần đối soát của khách hàng
  exportReconciliableOrders: (customerId) =>
    `${baseURL}/CustomerReconciliationSlip/ExportReconciliableOrders/${customerId}`,
};

export { reconciliation };
