import { requestClient } from '#/api/request';

export namespace ArchiveStatApi {
  /** 分类维度统计项 */
  export interface StatCategory {
    categoryId?: number; // 分类 ID
    name?: string; // 分类名称
    total?: number; // 档案数量
  }

  /** 字典值维度统计项 */
  export interface StatValue {
    value?: number; // 字典值
    name?: string; // 字典标签（后端转义）
    total?: number; // 档案数量
  }

  /** 档案统计概览 */
  export interface StatOverview {
    totalCount?: number; // 档案总数
    inStockCount?: number; // 在库档案数
    borrowedCount?: number; // 借出中档案数
    borrowingCount?: number; // 借出中借阅单数
    overdueCount?: number; // 逾期未还借阅单数
    byCategory?: StatCategory[]; // 按分类分布
    bySecretLevel?: StatValue[]; // 按密级分布
    byCarrierType?: StatValue[]; // 按载体分布
  }
}

/** 查询档案统计概览 */
export function getArchiveStatOverview() {
  return requestClient.get<ArchiveStatApi.StatOverview>(
    '/archive/stat/overview',
  );
}
