293 lines
8.1 KiB
JavaScript
293 lines
8.1 KiB
JavaScript
import api from '@/services/api';
|
|
import { handleRequest } from '@/services/serviceUtils';
|
|
|
|
// Endpoints definidos pelo usuário
|
|
const ENDPOINTS = {
|
|
VEHICLES: '/cadastro_frota',
|
|
MAINTENANCE: '/manutencao_frota',
|
|
AVAILABILITY: '/disponibilidade_frota',
|
|
MOKI: '/moki_frota',
|
|
STATUS: '/status_frota',
|
|
MONITORING: '/monitoramento_frota',
|
|
CLAIMS: '/sinistro_devolucao_venda_frota',
|
|
WORKSHOPS: '/oficinas_frota',
|
|
AUTH: '/auth_monitoramento'
|
|
};
|
|
|
|
export const prafrotService = {
|
|
// --- Autenticação ---
|
|
login: (credentials) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.AUTH, credentials);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Cadastro de Frota (Veículos) ---
|
|
getVehicles: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.VEHICLES}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createVehicle: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.VEHICLES, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateVehicle: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.VEHICLES}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
deleteVehicle: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.VEHICLES}/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Manutenção ---
|
|
getMaintenance: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.MAINTENANCE}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createMaintenance: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
// POST to base endpoint for creation
|
|
const { data } = await api.post(ENDPOINTS.MAINTENANCE, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateMaintenance: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
// PUT to base endpoint/{id} for update
|
|
const { data } = await api.put(`${ENDPOINTS.MAINTENANCE}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateMaintenanceBatch: (ids, status) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.MAINTENANCE}/edit/em_lote`, { ids, status });
|
|
return data;
|
|
}
|
|
}),
|
|
deleteMaintenance: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.MAINTENANCE}/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Disponibilidade ---
|
|
getAvailability: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.AVAILABILITY}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createAvailability: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.AVAILABILITY, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateAvailability: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.AVAILABILITY}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
deleteAvailability: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.AVAILABILITY}/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Moki (Checklists) ---
|
|
getMoki: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.MOKI}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createMoki: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.MOKI, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateMoki: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.MOKI}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
deleteMoki: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.MOKI}/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Status Frota ---
|
|
getStatus: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.STATUS}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createStatus: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.STATUS, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateStatus: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.STATUS}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateStatusBatch: (ids, statusFrota) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.STATUS}/edit/em_lote`, { ids, status_frota: statusFrota });
|
|
return data;
|
|
}
|
|
}),
|
|
deleteStatus: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.STATUS}/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Monitoramento ---
|
|
getMonitoring: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.MONITORING}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createMonitoring: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.MONITORING, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateMonitoring: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.MONITORING}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
deleteMonitoring: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.MONITORING}/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Sinistro / Devolução ---
|
|
getClaims: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.CLAIMS}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createClaims: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.CLAIMS, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateClaims: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.CLAIMS}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
deleteClaim: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
// Usando a rota específica fornecida pelo usuário para exclusão de sinistro
|
|
const { data } = await api.put(`/sinistro_frota/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Oficinas ---
|
|
getWorkshops: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`${ENDPOINTS.WORKSHOPS}/apresentar`);
|
|
return data;
|
|
}
|
|
}),
|
|
createWorkshop: (payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.post(ENDPOINTS.WORKSHOPS, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
updateWorkshop: (id, payload) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.WORKSHOPS}/${id}`, payload);
|
|
return data;
|
|
}
|
|
}),
|
|
deleteWorkshop: (id) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`${ENDPOINTS.WORKSHOPS}/delete/${id}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Motoristas (Drivers) ---
|
|
getDrivers: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get('/motoristas/listagem');
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Listas de Configuração (Config Lists) ---
|
|
getListasConfig: () => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get('/listas_frota/config');
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
getListasByRoute: (route) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.get(`/listas_frota/${route}`);
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Update Vehicle Status (Inline Edit) ---
|
|
updateVehicleStatus: (idVehicle, statusFrota) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put(`/status_frota/edit/${idVehicle}`, {
|
|
status_frota: statusFrota
|
|
});
|
|
return data;
|
|
}
|
|
}),
|
|
|
|
// --- Update Status Batch (Bulk Edit) ---
|
|
updateStatusBatch: (ids, statusFrota) => handleRequest({
|
|
apiFn: async () => {
|
|
const { data } = await api.put('/status_frota/edit/em_lote', {
|
|
ids,
|
|
status_frota: statusFrota
|
|
});
|
|
return data;
|
|
}
|
|
})
|
|
};
|