import request from '@/config/axios'

// ERP 总账 VO
export interface LedgerVO {
  id: number | null // 总账编号
  subjectId: number // 科目编号
  subjectCode: string // 科目编码
  subjectName: string // 科目名称
  period: string // 期间（YYYYMM）
  summary: string // 摘要
  debitAmount: number // 借方金额
  creditAmount: number // 贷方金额
  direction: string // 方向（借、贷、平）
  balance: number // 余额
  voucherCount: number // 关联凭证数量
  status: number // 状态
  createTime: number | Date // 创建时间
}

// ERP 总账 API
export const LedgerApi = {
  // 查询总账分页
  getLedgerPage: async (params: any) => {
    return await request.get({ url: `/erp/ledger/page`, params })
  },

  // 查询总账详情
  getLedger: async (id: number) => {
    return await request.get({ url: `/erp/ledger/get?id=` + id })
  },

  // 新增总账
  createLedger: async (data: LedgerVO) => {
    return await request.post({ url: `/erp/ledger/create`, data })
  },

  // 修改总账
  updateLedger: async (data: LedgerVO) => {
    return await request.put({ url: `/erp/ledger/update`, data })
  },

  // 删除总账
  deleteLedger: async (id: number) => {
    return await request.delete({ url: `/erp/ledger/delete?id=` + id })
  },

  // 导出总账 Excel
  exportLedger: async (params: any) => {
    return await request.download({ url: `/erp/ledger/export-excel`, params })
  },

  // 获取账户余额
  getAccountBalance: async (accountId: number) => {
    return await request.get({ url: `/erp/ledger/account-balance?accountId=` + accountId })
  },

  // 获取科目余额
  getSubjectBalance: async (subjectId: number) => {
    return await request.get({ url: `/erp/ledger/subject-balance?subjectId=` + subjectId })
  }
}
