Files
genome2025/frontend/src/lib/api/mpt.api.ts

106 lines
2.2 KiB
TypeScript

import apiClient from "../api-client";
/**
* MPT(혈액화학검사) 결과 DTO
*/
export interface MptDto {
pkMptNo: number;
cowShortNo: string;
fkFarmNo: number;
testDt: string;
monthAge: number;
milkYield: number;
parity: number;
// 에너지 대사
glucose: number;
cholesterol: number;
nefa: number;
bcs: number;
// 단백질 대사
totalProtein: number;
albumin: number;
globulin: number;
agRatio: number;
bun: number;
// 간기능
ast: number;
ggt: number;
fattyLiverIdx: number;
// 미네랄
calcium: number;
phosphorus: number;
caPRatio: number;
magnesium: number;
creatine: number;
// Relations
farm?: {
pkFarmNo: number;
farmerName: string;
};
}
/**
* MPT(혈액화학검사) 관련 API
*/
export const mptApi = {
/**
* GET /mpt - 전체 검사 결과 목록
*/
findAll: async (): Promise<MptDto[]> => {
return await apiClient.get("/mpt");
},
/**
* GET /mpt?farmId=:farmId - 특정 농장의 검사 결과
*/
findByFarmId: async (farmId: number): Promise<MptDto[]> => {
return await apiClient.get("/mpt", {
params: { farmId },
});
},
/**
* GET /mpt?cowShortNo=:cowShortNo - 특정 개체의 검사 결과
*/
findByCowShortNo: async (cowShortNo: string): Promise<MptDto[]> => {
return await apiClient.get("/mpt", {
params: { cowShortNo },
});
},
/**
* GET /mpt/:id - 검사 결과 상세 조회
*/
findOne: async (id: number): Promise<MptDto> => {
return await apiClient.get(`/mpt/${id}`);
},
/**
* POST /mpt - 검사 결과 생성
*/
create: async (data: Partial<MptDto>): Promise<MptDto> => {
return await apiClient.post("/mpt", data);
},
/**
* POST /mpt/bulk - 검사 결과 일괄 생성
*/
bulkCreate: async (data: Partial<MptDto>[]): Promise<MptDto[]> => {
return await apiClient.post("/mpt/bulk", data);
},
/**
* PUT /mpt/:id - 검사 결과 수정
*/
update: async (id: number, data: Partial<MptDto>): Promise<MptDto> => {
return await apiClient.put(`/mpt/${id}`, data);
},
/**
* DELETE /mpt/:id - 검사 결과 삭제
*/
remove: async (id: number): Promise<void> => {
return await apiClient.delete(`/mpt/${id}`);
},
};