74 lines
1.7 KiB
TypeScript

import { request } from "./http";
export interface TvaRate {
id: number;
name: string;
rate: number;
created_at: string;
updated_at: string;
}
export interface TvaRateListResponse {
data: TvaRate[];
}
export interface TvaRateResponse {
data: TvaRate;
}
export interface CreateTvaRatePayload {
name: string;
rate: number;
}
export interface UpdateTvaRatePayload extends Partial<CreateTvaRatePayload> {
id: number;
}
export const TvaRateService = {
async getAllTvaRates(): Promise<TvaRateListResponse> {
const response = await request<TvaRateListResponse>({
url: "/api/tva-rates",
method: "get",
});
return response;
},
async getTvaRate(id: number): Promise<TvaRateResponse> {
const response = await request<TvaRateResponse>({
url: `/api/tva-rates/${id}`,
method: "get",
});
return response;
},
async createTvaRate(payload: CreateTvaRatePayload): Promise<TvaRateResponse> {
const response = await request<TvaRateResponse>({
url: "/api/tva-rates",
method: "post",
data: payload,
});
return response;
},
async updateTvaRate(payload: UpdateTvaRatePayload): Promise<TvaRateResponse> {
const { id, ...updateData } = payload;
const response = await request<TvaRateResponse>({
url: `/api/tva-rates/${id}`,
method: "put",
data: updateData,
});
return response;
},
async deleteTvaRate(id: number): Promise<{ success: boolean; message: string }> {
const response = await request<{ success: boolean; message: string }>({
url: `/api/tva-rates/${id}`,
method: "delete",
});
return response;
},
};
export default TvaRateService;