import { request } from "@utils"; const API_PATH = "/bre/trait"; const TraitAPI = { getTraitList(query: TraitPageQuery) { return request>>({ url: `${API_PATH}/list`, method: "get", params: query, }); }, getTraitDetail(query: number) { return request>({ url: `${API_PATH}/detail/${query}`, method: "get", }); }, getTraitOptions() { return request>({ url: `${API_PATH}/options`, method: "get", }); }, createTrait(body: TraitForm) { return request({ url: `${API_PATH}/create`, method: "post", data: body, }); }, updateTrait(id: number, body: TraitForm) { return request({ url: `${API_PATH}/update/${id}`, method: "put", data: body, }); }, deleteTrait(body: number[]) { return request({ url: `${API_PATH}/delete`, method: "delete", data: body, }); }, exportTrait(body: TraitPageQuery) { return request({ url: `${API_PATH}/export`, method: "post", data: body, responseType: "blob", }); }, downloadTemplateTrait() { return request({ url: `${API_PATH}/download/template`, method: "post", responseType: "blob", }); }, importTrait(body: FormData) { return request({ url: `${API_PATH}/import`, method: "post", data: body, headers: { "Content-Type": "multipart/form-data", }, }); }, }; export default TraitAPI; export interface TraitPageQuery extends PageQuery, UserByQueryParams { trait_code?: string; trait_name?: string; category?: string; data_type?: string; is_core?: string; } export interface TraitOption { value: number; label: string; } export interface TraitTable extends BaseType { trait_code?: string; trait_name?: string; category?: string; data_type?: string; unit?: string; is_core?: string; scale_json?: string; valid_min?: number; valid_max?: number; ontology_uri?: string; remark?: string; } export interface TraitForm extends BaseFormType { trait_code?: string; trait_name?: string; category?: string; data_type?: string; unit?: string; is_core?: string; scale_json?: string; valid_min?: number; valid_max?: number; ontology_uri?: string; remark?: string; }