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

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

export namespace SrmSupplierCertificateApi {
  export interface CertificateVO {
    id?: number;
    supplierId: number;
    supplierName?: string;
    certificateName: string;
    certificateNo?: string;
    certificateType: number;
    issuingAuthority?: string;
    issueDate: string;
    expireDate: string;
    expireStatus?: number;
    remark?: string;
    createTime?: string;
  }
}

/** 分页查询资质 */
export function getCertificatePage(params: PageParam) {
  return requestClient.get<PageResult<SrmSupplierCertificateApi.CertificateVO>>('/srm/supplier-certificate/page', { params });
}

/** 获取资质详情 */
export function getCertificate(id: number) {
  return requestClient.get<SrmSupplierCertificateApi.CertificateVO>(`/srm/supplier-certificate/get?id=${id}`);
}

/** 创建资质 */
export function createCertificate(data: SrmSupplierCertificateApi.CertificateVO) {
  return requestClient.post('/srm/supplier-certificate/create', data);
}

/** 更新资质 */
export function updateCertificate(data: SrmSupplierCertificateApi.CertificateVO) {
  return requestClient.put('/srm/supplier-certificate/update', data);
}

/** 删除资质 */
export function deleteCertificate(id: number) {
  return requestClient.delete(`/srm/supplier-certificate/delete?id=${id}`);
}

/** 按供应商获取资质列表 */
export function getCertificateListBySupplier(supplierId: number) {
  return requestClient.get<SrmSupplierCertificateApi.CertificateVO[]>(`/srm/supplier-certificate/list-by-supplier?supplierId=${supplierId}`);
}

/** 获取即将到期的资质列表 */
export function getExpiringCertificates() {
  return requestClient.get<SrmSupplierCertificateApi.CertificateVO[]>('/srm/supplier-certificate/expiring-list');
}
