import type { PageParam, PageResult } from '@vben/request';

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

export namespace AssetItemApi {
  /** 资产分类 */
  export const Category = {
    CONSUMABLE: 1,
    OFFICE: 2,
    FIXED: 3,
  } as const;

  /** 资产台账 */
  export interface AssetItem {
    id?: number;
    assetNo?: string;
    name: string;
    category: number;
    categoryName?: string;
    spec?: string;
    unit?: string;
    quantity: number;
    unitPrice?: number;
    totalAmount?: number;
    purchaseDate?: string;
    custodianId?: number;
    custodianName?: string;
    location?: string;
    remark?: string;
    createTime?: string;
  }
}

/** 查询资产分页 */
export function getAssetItemPage(params: PageParam) {
  return requestClient.get<PageResult<AssetItemApi.AssetItem>>(
    '/asset/item/page',
    { params },
  );
}

/** 查询资产详情 */
export function getAssetItem(id: number) {
  return requestClient.get<AssetItemApi.AssetItem>(`/asset/item/get?id=${id}`);
}

/** 查询资产精简列表 */
export function getAssetItemSimpleList() {
  return requestClient.get<AssetItemApi.AssetItem[]>(
    '/asset/item/simple-list',
  );
}

/** 新增资产 */
export function createAssetItem(data: AssetItemApi.AssetItem) {
  return requestClient.post('/asset/item/create', data);
}

/** 修改资产 */
export function updateAssetItem(data: AssetItemApi.AssetItem) {
  return requestClient.put('/asset/item/update', data);
}

/** 删除资产 */
export function deleteAssetItem(id: number) {
  return requestClient.delete('/asset/item/delete', { params: { id } });
}
