import request from '@/config/axios'

// ERP 会计期间 VO
export interface FiscalPeriodVO {
  id: number // 期间ID
  periodCode: string // 期间编码（yyyyMM格式）
  periodName: string // 期间名称
  fiscalYear: string // 会计年度
  startDate: Date // 开始日期
  endDate: Date // 结束日期
  status: number // 状态（1-开放，2-关闭，3-结账）
  isCurrent: boolean // 是否当前期间
  description: string // 描述
  createdTime: Date // 创建时间
}

// ERP 会计期间 API
export const FiscalPeriodApi = {
  // 查询会计期间分页
  getFiscalPeriodPage: async (params: any) => {
    return await request.get({ url: `/erp/fiscal-period/page`, params })
  },

  // 查询会计期间详情
  getFiscalPeriod: async (id: number) => {
    return await request.get({ url: `/erp/fiscal-period/get?id=` + id })
  },

  // 获取当前会计期间
  getCurrentFiscalPeriod: async () => {
    return await request.get({ url: `/erp/fiscal-period/current` })
  },

  // 新增会计期间
  createFiscalPeriod: async (data: FiscalPeriodVO) => {
    return await request.post({ url: `/erp/fiscal-period/create`, data })
  },

  // 修改会计期间
  updateFiscalPeriod: async (data: FiscalPeriodVO) => {
    return await request.put({ url: `/erp/fiscal-period/update`, data })
  },

  // 删除会计期间
  deleteFiscalPeriod: async (id: number) => {
    return await request.delete({ url: `/erp/fiscal-period/delete?id=` + id })
  },

  // 开启会计期间
  openFiscalPeriod: async (id: number) => {
    return await request.put({ url: `/erp/fiscal-period/open?id=` + id })
  },

  // 关闭会计期间
  closeFiscalPeriod: async (id: number) => {
    return await request.put({ url: `/erp/fiscal-period/close?id=` + id })
  },

  // 结账
  postFiscalPeriod: async (id: number) => {
    return await request.put({ url: `/erp/fiscal-period/post?id=` + id })
  },

  // 执行完整结账流程
  performCompleteClosing: async (id: number) => {
    return await request.put({ url: `/erp/fiscal-period/complete-closing?id=` + id })
  },

  // 检查试算平衡
  checkTrialBalance: async (id: number) => {
    return await request.get({ url: `/erp/fiscal-period/check-trial-balance?id=` + id })
  },

  // 导出会计期间 Excel
  exportFiscalPeriod: async (params: any) => {
    return await request.download({ url: `/erp/fiscal-period/export-excel`, params })
  }
}
