Files
badoHair_fe/lib/api/services.ts
2026-05-12 00:28:37 +00:00

53 lines
1.5 KiB
TypeScript

import { api } from "@/lib/api";
export interface ApiService {
id: string;
name: string;
description: string;
duration_minutes: number;
price: number;
}
export function formatDuration(minutes: number): string {
if (minutes < 60) return `${minutes} min`;
const h = Math.floor(minutes / 60);
const m = minutes % 60;
return m > 0 ? `${h}h ${m}min` : `${h}h`;
}
export async function listServices(): Promise<ApiService[]> {
return api.get<ApiService[]>("/services");
}
// ── Admin ─────────────────────────────────────────────────────────────────────
export interface AdminServiceApi extends ApiService {
is_active: boolean;
created_at: string;
updated_at: string;
}
export interface ServicePayload {
name: string;
description?: string;
duration_minutes: number;
price: number;
is_active: boolean;
}
export async function adminListServices(): Promise<AdminServiceApi[]> {
return api.get<AdminServiceApi[]>("/admin/services");
}
export async function adminCreateService(payload: ServicePayload): Promise<AdminServiceApi> {
return api.post<AdminServiceApi>("/admin/services", payload);
}
export async function adminUpdateService(id: string, payload: Partial<ServicePayload>): Promise<AdminServiceApi> {
return api.put<AdminServiceApi>(`/admin/services/${id}`, payload);
}
export async function adminDeleteService(id: string): Promise<void> {
await api.del(`/admin/services/${id}`);
}