차량관리(기초데이터) 구현

This commit is contained in:
dohyeons
2025-12-01 18:41:02 +09:00
parent cea2421899
commit 9c3f1d26ad
10 changed files with 914 additions and 3 deletions

View File

@@ -0,0 +1,92 @@
// 공차중계 운전자 API
import { apiClient } from "./client";
export interface DriverProfile {
userId: string;
userName: string;
phoneNumber: string;
licenseNumber: string;
vehicleNumber: string;
vehicleType: string | null;
vehicleStatus: string | null;
}
export interface DriverProfileUpdateData {
userName?: string;
phoneNumber?: string;
licenseNumber?: string;
vehicleNumber?: string;
vehicleType?: string;
}
/**
* 운전자 프로필 조회
*/
export async function getDriverProfile(): Promise<{
success: boolean;
data?: DriverProfile;
message?: string;
}> {
try {
const response = await apiClient.get("/driver/profile");
return response.data;
} catch (error: any) {
return {
success: false,
message: error.response?.data?.message || "프로필 조회에 실패했습니다.",
};
}
}
/**
* 운전자 프로필 수정
*/
export async function updateDriverProfile(
data: DriverProfileUpdateData
): Promise<{ success: boolean; message?: string }> {
try {
const response = await apiClient.put("/driver/profile", data);
return response.data;
} catch (error: any) {
return {
success: false,
message: error.response?.data?.message || "프로필 수정에 실패했습니다.",
};
}
}
/**
* 차량 상태 변경 (대기/정비)
*/
export async function updateDriverStatus(
status: "off" | "maintenance"
): Promise<{ success: boolean; message?: string }> {
try {
const response = await apiClient.put("/driver/status", { status });
return response.data;
} catch (error: any) {
return {
success: false,
message: error.response?.data?.message || "상태 변경에 실패했습니다.",
};
}
}
/**
* 회원 탈퇴
*/
export async function deleteDriverAccount(): Promise<{
success: boolean;
message?: string;
}> {
try {
const response = await apiClient.delete("/driver/account");
return response.data;
} catch (error: any) {
return {
success: false,
message: error.response?.data?.message || "회원 탈퇴에 실패했습니다.",
};
}
}