동기화

This commit is contained in:
GA Pro
2026-05-14 01:21:27 +09:00
parent acea2afce5
commit 958fe6b980
379 changed files with 21786 additions and 423 deletions
+70
View File
@@ -0,0 +1,70 @@
import api, { PageResponse, unwrap } from './request';
export interface AgentTrainingRow extends Record<string, unknown> {
trainingId: number;
agentId: number;
agentName: string;
trainingName: string;
trainingType: string;
completedHours: number;
trainingDate: string;
provider: string;
status: string;
year: number;
}
export interface TrainingRequirement extends Record<string, unknown> {
requirementId: number;
trainingType: string;
requiredHours: number;
year: number;
}
export interface AnnualHoursSummary extends Record<string, unknown> {
agentId: number;
agentName: string;
year: number;
completedHours: number;
requiredHours: number;
satisfactionRate: number;
satisfied: boolean;
}
export interface AgentTrainingSaveReq {
agentId: number;
trainingName: string;
trainingType: string;
completedHours: number;
trainingDate: string;
provider: string;
}
export interface AgentTrainingSearchParam {
agentId?: number;
agentName?: string;
year?: number;
trainingType?: string;
pageNum?: number;
pageSize?: number;
}
export const trainingApi = {
list: (p: AgentTrainingSearchParam) =>
unwrap<PageResponse<AgentTrainingRow>>(
api.get('/api/agent-trainings', { params: p }),
),
annualHours: (agentId: number, year: number) =>
unwrap<AnnualHoursSummary>(
api.get('/api/agent-trainings/annual-hours', { params: { agentId, year } }),
),
requirements: () =>
unwrap<TrainingRequirement[]>(
api.get('/api/training-requirements'),
),
create: (body: AgentTrainingSaveReq) =>
unwrap<AgentTrainingRow>(api.post('/api/agent-trainings', body)),
update: (id: number, body: Partial<AgentTrainingSaveReq>) =>
unwrap<AgentTrainingRow>(api.put(`/api/agent-trainings/${id}`, body)),
delete: (id: number) =>
unwrap<void>(api.delete(`/api/agent-trainings/${id}`)),
};