import request from '@/config/axios'

// 利润表行数据 VO
export interface ProfitSheetRowVO {
  item: string // 项目
  lineNo: string // 行次
  yearToDateAmount: number | null // 本年累计金额
  currentMonthAmount: number | null // 本月金额
  isTotal?: boolean // 是否合计行
  isCategory?: boolean // 是否分类行
  indent?: boolean // 是否缩进
}

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

// 利润表 Response VO
export interface ProfitSheetRespVO {
  id: number // 主键编号
  reportDate: string // 报表日期（格式：YYYY-MM）
  companyName?: string // 编制单位
  item: string // 项目
  lineNo: string // 行次
  yearToDateAmount: number | null // 本年累计金额
  currentMonthAmount: number | null // 本月金额
  isTotal?: boolean // 是否合计行
  isCategory?: boolean // 是否分类行
  indent?: boolean // 是否缩进
  createTime?: string // 创建时间
  updateTime?: string // 更新时间
}

// 利润表 API
export const ProfitSheetApi = {
  // 保存利润表
  saveProfitSheet: async (data: ProfitSheetSaveReqVO) => {
    return await request.post({ url: `/erp/profit-sheet/save`, data })
  },

  // 根据报表日期查询利润表
  getProfitSheet: async (reportDate: string): Promise<ProfitSheetRespVO[]> => {
    return await request.get({ url: `/erp/profit-sheet/get`, params: { reportDate } })
  }
}

