260224:1606 20260224:1600 V1.8.0
All checks were successful
Build and Deploy / deploy (push) Successful in 6m25s

This commit is contained in:
admin
2026-02-24 16:06:15 +07:00
parent 97cc41f489
commit 158179d4a5
255 changed files with 5339 additions and 2094 deletions

View File

@@ -1,12 +1,13 @@
import { AuditLog, AuditLogQueryParams } from '@/lib/services/audit-log.service';
import { useQuery } from '@tanstack/react-query';
import { auditLogService, AuditLog } from '@/lib/services/audit-log.service';
import { auditLogService } from '@/lib/services/audit-log.service';
export const auditLogKeys = {
all: ['audit-logs'] as const,
list: (params: any) => [...auditLogKeys.all, 'list', params] as const,
list: (params?: AuditLogQueryParams) => [...auditLogKeys.all, 'list', params] as const,
};
export function useAuditLogs(params?: any) {
export function useAuditLogs(params?: AuditLogQueryParams) {
return useQuery<AuditLog[]>({
queryKey: auditLogKeys.list(params),
queryFn: () => auditLogService.getLogs(params),

View File

@@ -37,7 +37,7 @@ export const useNumberingMetrics = () => {
export const useNumberingAuditLogs = (params?: AuditQueryParams) => {
return useQuery({
queryKey: numberingKeys.auditLogs(params),
queryFn: () => documentNumberingService.getAuditLogs(params),
queryFn: () => documentNumberingService.getAuditLogs(),
});
};
@@ -75,7 +75,7 @@ export const useCancelNumbering = () => {
export const useBulkImportNumbering = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (data: FormData | any[]) => documentNumberingService.bulkImport(data),
mutationFn: (data: FormData | { documentNumber: string; projectId: number; sequenceNumber: number }[]) => documentNumberingService.bulkImport(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: numberingKeys.all });
},

View File

@@ -2,6 +2,7 @@ import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { projectService } from '@/lib/services/project.service';
import { CreateProjectDto, UpdateProjectDto, SearchProjectDto } from '@/types/dto/project/project.dto';
import { toast } from 'sonner';
import { getApiErrorMessage } from '@/types/api-error';
export const projectKeys = {
all: ['projects'] as const,
@@ -24,9 +25,9 @@ export function useCreateProject() {
toast.success("Project created successfully");
queryClient.invalidateQueries({ queryKey: projectKeys.all });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error("Failed to create project", {
description: error.response?.data?.message || "Unknown error"
description: getApiErrorMessage(error, "Unknown error")
});
}
});
@@ -40,9 +41,9 @@ export function useUpdateProject() {
toast.success("Project updated successfully");
queryClient.invalidateQueries({ queryKey: projectKeys.all });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error("Failed to update project", {
description: error.response?.data?.message || "Unknown error"
description: getApiErrorMessage(error, "Unknown error")
});
}
});
@@ -56,9 +57,9 @@ export function useDeleteProject() {
toast.success("Project deleted successfully");
queryClient.invalidateQueries({ queryKey: projectKeys.all });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error("Failed to delete project", {
description: error.response?.data?.message || "Unknown error"
description: getApiErrorMessage(error, "Unknown error")
});
}
});

View File

@@ -1,5 +1,8 @@
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { masterDataService } from '@/lib/services/master-data.service';
import type { CreateDisciplineDto } from '@/types/dto/master/discipline.dto';
import type { CreateRfaTypeDto, UpdateRfaTypeDto } from '@/types/dto/master/rfa-type.dto';
import type { CreateCorrespondenceTypeDto, UpdateCorrespondenceTypeDto } from '@/types/dto/master/correspondence-type.dto';
export const referenceDataKeys = {
all: ['reference-data'] as const,
@@ -19,7 +22,7 @@ export const useRfaTypes = (contractId?: number) => {
export const useCreateRfaType = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (data: any) => masterDataService.createRfaType(data),
mutationFn: (data: CreateRfaTypeDto) => masterDataService.createRfaType(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['reference-data', 'rfaTypes'] });
},
@@ -29,7 +32,7 @@ export const useCreateRfaType = () => {
export const useUpdateRfaType = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ id, data }: { id: number; data: any }) => masterDataService.updateRfaType(id, data),
mutationFn: ({ id, data }: { id: number; data: UpdateRfaTypeDto }) => masterDataService.updateRfaType(id, data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['reference-data', 'rfaTypes'] });
},
@@ -57,7 +60,7 @@ export const useDisciplines = (contractId?: number) => {
export const useCreateDiscipline = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (data: any) => masterDataService.createDiscipline(data),
mutationFn: (data: CreateDisciplineDto) => masterDataService.createDiscipline(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['reference-data', 'disciplines'] });
},
@@ -85,7 +88,7 @@ export const useCorrespondenceTypes = () => {
export const useCreateCorrespondenceType = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (data: any) => masterDataService.createCorrespondenceType(data),
mutationFn: (data: CreateCorrespondenceTypeDto) => masterDataService.createCorrespondenceType(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['reference-data', 'correspondenceTypes'] });
},
@@ -95,7 +98,7 @@ export const useCreateCorrespondenceType = () => {
export const useUpdateCorrespondenceType = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ id, data }: { id: number; data: any }) => masterDataService.updateCorrespondenceType(id, data),
mutationFn: ({ id, data }: { id: number; data: UpdateCorrespondenceTypeDto }) => masterDataService.updateCorrespondenceType(id, data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['reference-data', 'correspondenceTypes'] });
},

View File

@@ -3,6 +3,7 @@ import { rfaService } from '@/lib/services/rfa.service';
import { SearchRfaDto, CreateRfaDto, UpdateRfaDto } from '@/types/dto/rfa/rfa.dto';
import { WorkflowActionDto } from '@/lib/services/rfa.service';
import { toast } from 'sonner';
import { getApiErrorMessage } from '@/types/api-error';
// Keys
export const rfaKeys = {
@@ -42,9 +43,9 @@ export function useCreateRFA() {
toast.success('RFA created successfully');
queryClient.invalidateQueries({ queryKey: rfaKeys.lists() });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error('Failed to create RFA', {
description: error.response?.data?.message || 'Something went wrong',
description: getApiErrorMessage(error, 'Something went wrong'),
});
},
});
@@ -61,9 +62,9 @@ export function useUpdateRFA() {
queryClient.invalidateQueries({ queryKey: rfaKeys.detail(id) });
queryClient.invalidateQueries({ queryKey: rfaKeys.lists() });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error('Failed to update RFA', {
description: error.response?.data?.message || 'Something went wrong',
description: getApiErrorMessage(error, 'Something went wrong'),
});
},
});
@@ -80,9 +81,9 @@ export function useProcessRFA() {
queryClient.invalidateQueries({ queryKey: rfaKeys.detail(id) });
queryClient.invalidateQueries({ queryKey: rfaKeys.lists() });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error('Failed to process workflow', {
description: error.response?.data?.message || 'Something went wrong',
description: getApiErrorMessage(error, 'Something went wrong'),
});
},
});

View File

@@ -1,11 +1,12 @@
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { userService } from '@/lib/services/user.service';
import { CreateUserDto, UpdateUserDto, SearchUserDto } from '@/types/user'; // Ensure types exist
import { CreateUserDto, UpdateUserDto, SearchUserDto } from '@/types/user';
import { toast } from 'sonner';
import { getApiErrorMessage } from '@/types/api-error';
export const userKeys = {
all: ['users'] as const,
list: (params: any) => [...userKeys.all, 'list', params] as const,
list: (params?: SearchUserDto) => [...userKeys.all, 'list', params] as const,
detail: (id: number) => [...userKeys.all, 'detail', id] as const,
};
@@ -31,9 +32,9 @@ export function useCreateUser() {
toast.success("User created successfully");
queryClient.invalidateQueries({ queryKey: userKeys.all });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error("Failed to create user", {
description: error.response?.data?.message || "Unknown error"
description: getApiErrorMessage(error, "Unknown error")
});
}
});
@@ -47,9 +48,9 @@ export function useUpdateUser() {
toast.success("User updated successfully");
queryClient.invalidateQueries({ queryKey: userKeys.all });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error("Failed to update user", {
description: error.response?.data?.message || "Unknown error"
description: getApiErrorMessage(error, "Unknown error")
});
}
});
@@ -63,9 +64,9 @@ export function useDeleteUser() {
toast.success("User deleted successfully");
queryClient.invalidateQueries({ queryKey: userKeys.all });
},
onError: (error: any) => {
onError: (error: unknown) => {
toast.error("Failed to delete user", {
description: error.response?.data?.message || "Unknown error"
description: getApiErrorMessage(error, "Unknown error")
});
}
});