74 lines
1.7 KiB
TypeScript
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;
|