import request from '@/config/axios'

// 资产负债表行数据 VO
export interface BalanceSheetRowVO {
  assetItem: string // 资产项目
  assetLineNo: string // 资产行次
  assetEndAmount: number | null // 资产期末余额
  assetBeginAmount: number | null // 资产年初余额
  liabilityItem: string // 负债和所有者权益项目
  liabilityLineNo: string // 负债行次
  liabilityEndAmount: number | null // 负债期末余额
  liabilityBeginAmount: number | null // 负债年初余额
  isTotal?: boolean // 是否合计行
  isCategory?: boolean // 是否分类行
  indent?: boolean // 是否缩进
}

// 资产负债表保存 Request VO
export interface BalanceSheetSaveReqVO {
  reportDate: string // 报表日期（格式：YYYY-MM）
  companyName?: string // 编制单位
  guidanceOpinion?: string // 指导意见
  rows: BalanceSheetRowVO[] // 资产负债表行数据列表
}

// 资产负债表 Response VO
export interface BalanceSheetRespVO {
  id: number // 主键编号
  reportDate: string // 报表日期（格式：YYYY-MM）
  companyName?: string // 编制单位
  assetItem: string // 资产项目
  assetLineNo: string // 资产行次
  assetEndAmount: number | null // 资产期末余额
  assetBeginAmount: number | null // 资产年初余额
  liabilityItem: string // 负债和所有者权益项目
  liabilityLineNo: string // 负债行次
  liabilityEndAmount: number | null // 负债期末余额
  liabilityBeginAmount: number | null // 负债年初余额
  isTotal?: boolean // 是否合计行
  isCategory?: boolean // 是否分类行
  indent?: boolean // 是否缩进
  createTime?: string // 创建时间
  updateTime?: string // 更新时间
}

// 资产负债表 API
export const BalanceSheetApi = {
  // 保存资产负债表
  saveBalanceSheet: async (data: BalanceSheetSaveReqVO) => {
    return await request.post({ url: `/erp/balance-sheet/save`, data })
  },

  // 根据报表日期查询资产负债表
  getBalanceSheet: async (reportDate: string): Promise<BalanceSheetRespVO[]> => {
    return await request.get({ url: `/erp/balance-sheet/get`, params: { reportDate } })
  }
}

