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

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

export namespace PurchaseOrderApi {
  /** 采购商品明细 */
  export interface OrderItem {
    id?: number;
    orderId?: number;
    itemName: string;
    spec?: string;
    quantity: number;
    unitPrice: number;
    amount?: number;
    sortNo?: number;
  }

  /** 采购单 */
  export interface Order {
    id?: number;
    no?: string;
    purchaseDate: string;
    buyerId?: number;
    buyerName: string;
    totalAmount?: number;
    status?: number;
    remark?: string;
    items?: OrderItem[];
    createTime?: string;
  }
}

/** 查询采购单分页 */
export function getPurchaseOrderPage(params: PageParam) {
  return requestClient.get<PageResult<PurchaseOrderApi.Order>>(
    '/purchase/order/page',
    { params },
  );
}

/** 查询采购单详情（含明细） */
export function getPurchaseOrder(id: number) {
  return requestClient.get<PurchaseOrderApi.Order>(
    `/purchase/order/get?id=${id}`,
  );
}

/** 新增采购单 */
export function createPurchaseOrder(data: PurchaseOrderApi.Order) {
  return requestClient.post('/purchase/order/create', data);
}

/** 修改采购单 */
export function updatePurchaseOrder(data: PurchaseOrderApi.Order) {
  return requestClient.put('/purchase/order/update', data);
}

/** 删除采购单 */
export function deletePurchaseOrder(id: number) {
  return requestClient.delete('/purchase/order/delete', { params: { id } });
}
