Trains management CRUD issues solved

This commit is contained in:
hagiye
2026-06-05 21:07:04 +03:00
parent 9676a6bb56
commit dc42838a43
41 changed files with 2192 additions and 1830 deletions

View File

@@ -4,16 +4,44 @@ import { cargoService } from '@/services/cargoService';
export const cargoKeys = {
all: ['cargoes'] as const,
byContainer: (containerId: string) => [...cargoKeys.all, 'container', containerId] as const,
details: () => [...cargoKeys.all, 'detail'] as const,
detail: (id: string) => [...cargoKeys.details(), id] as const,
};
export function useCargoes() {
return useQuery({ queryKey: cargoKeys.all, queryFn: () => cargoService.getAll().then(res => res.data) });
}
export const useGetCargoes = useCargoes;
export function useCargoesByContainer(containerId: string) {
return useQuery({ queryKey: cargoKeys.byContainer(containerId), queryFn: () => cargoService.getByContainer(containerId).then(res => res.data), enabled: !!containerId });
}
export function useCargo(id: string) {
return useQuery({ queryKey: cargoKeys.detail(id), queryFn: () => cargoService.getById(id).then(res => res.data), enabled: !!id });
}
export const useGetCargo = useCargo;
export function useCreateCargo() {
const qc = useQueryClient();
return useMutation({ mutationFn: cargoService.create, onSuccess: () => qc.invalidateQueries({ queryKey: cargoKeys.all }) });
}
export function useUpdateCargo() {
const qc = useQueryClient();
return useMutation({ mutationFn: ({ id, data }: any) => cargoService.update(id, data), onSuccess: (_, { id }) => {
qc.invalidateQueries({ queryKey: cargoKeys.all });
qc.invalidateQueries({ queryKey: cargoKeys.detail(id) });
} });
}
export function useDeleteCargo() {
const qc = useQueryClient();
return useMutation({ mutationFn: cargoService.delete, onSuccess: () => qc.invalidateQueries({ queryKey: cargoKeys.all }) });
}
export function useLoadCargo() {
const qc = useQueryClient();
return useMutation({
@@ -36,4 +64,4 @@ export function useUnloadCargo() {
mutationFn: (id: string) => cargoService.unload(id),
onSuccess: () => qc.invalidateQueries({ queryKey: cargoKeys.all })
});
}
}