260228:1446 20260228:14:30 workflow update #2
All checks were successful
Build and Deploy / deploy (push) Successful in 2m29s

This commit is contained in:
admin
2026-02-28 14:46:57 +07:00
parent 3a41b84367
commit 4bdf163c93
14 changed files with 337 additions and 20 deletions

View File

@@ -10,6 +10,7 @@ import {
drawingMasterDataService,
ContractCategory,
ContractSubCategory,
CreateContractCategoryDto,
} from '@/lib/services/drawing-master-data.service';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
@@ -107,7 +108,7 @@ export default function ContractCategoriesPage() {
console.log('Contract Categories Data:', data);
return data;
}}
createFn={(data) => drawingMasterDataService.createContractCategory({ ...data, projectId: selectedProjectId })}
createFn={(data: Record<string, unknown>) => drawingMasterDataService.createContractCategory({ ...(data as unknown as CreateContractCategoryDto), projectId: selectedProjectId })}
updateFn={(id, data) => drawingMasterDataService.updateContractCategory(id, data)}
deleteFn={(id) => drawingMasterDataService.deleteContractCategory(id)}
columns={columns}

View File

@@ -6,7 +6,7 @@ import { ColumnDef } from '@tanstack/react-table';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Loader2 } from 'lucide-react';
import { useProjects } from '@/hooks/use-master-data';
import { drawingMasterDataService } from '@/lib/services/drawing-master-data.service';
import { drawingMasterDataService, CreateContractSubCategoryDto } from '@/lib/services/drawing-master-data.service';
import { Badge } from '@/components/ui/badge';
interface SubCategory {
@@ -100,8 +100,8 @@ export default function ContractSubCategoriesPage() {
console.log('Contract Sub-Categories Data:', data);
return data;
}}
createFn={(data) =>
drawingMasterDataService.createContractSubCategory({ ...data, projectId: selectedProjectId })
createFn={(data: Record<string, unknown>) =>
drawingMasterDataService.createContractSubCategory({ ...(data as unknown as CreateContractSubCategoryDto), projectId: selectedProjectId })
}
updateFn={(id, data) => drawingMasterDataService.updateContractSubCategory(id, data)}
deleteFn={(id) => drawingMasterDataService.deleteContractSubCategory(id)}

View File

@@ -109,7 +109,7 @@ export default function ContractVolumesPage() {
description="Manage drawing volumes (เล่ม) for contract drawings"
queryKey={["contract-drawing-volumes", String(selectedProjectId)]}
fetchFn={() => drawingMasterDataService.getContractVolumes(selectedProjectId)}
createFn={(data) => drawingMasterDataService.createContractVolume({ ...data, projectId: selectedProjectId })}
createFn={(data: Record<string, unknown>) => drawingMasterDataService.createContractVolume({ ...(data as unknown as Parameters<typeof drawingMasterDataService.createContractVolume>[0]), projectId: selectedProjectId })}
updateFn={(id, data) => drawingMasterDataService.updateContractVolume(id, data)}
deleteFn={(id) => drawingMasterDataService.deleteContractVolume(id)}
columns={columns}

View File

@@ -6,7 +6,7 @@ import { ColumnDef } from '@tanstack/react-table';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Loader2, CheckCircle, XCircle } from 'lucide-react';
import { useProjects } from '@/hooks/use-master-data';
import { drawingMasterDataService } from '@/lib/services/drawing-master-data.service';
import { drawingMasterDataService, CreateShopMainCategoryDto } from '@/lib/services/drawing-master-data.service';
import { Badge } from '@/components/ui/badge';
interface MainCategory {
@@ -111,9 +111,9 @@ export default function ShopMainCategoriesPage() {
console.log('Shop Main Categories Data:', data);
return data;
}}
createFn={(data) =>
createFn={(data: Record<string, unknown>) =>
drawingMasterDataService.createShopMainCategory({
...data,
...(data as unknown as CreateShopMainCategoryDto),
projectId: selectedProjectId,
isActive: data.isActive === 'true' || data.isActive === true,
})

View File

@@ -6,7 +6,7 @@ import { ColumnDef } from '@tanstack/react-table';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Loader2, CheckCircle, XCircle } from 'lucide-react';
import { useProjects } from '@/hooks/use-master-data';
import { drawingMasterDataService } from '@/lib/services/drawing-master-data.service';
import { drawingMasterDataService, CreateShopSubCategoryDto } from '@/lib/services/drawing-master-data.service';
import { Badge } from '@/components/ui/badge';
interface SubCategory {
@@ -113,9 +113,9 @@ export default function ShopSubCategoriesPage() {
console.log('Shop Sub-Categories Data:', data);
return data;
}}
createFn={(data) =>
createFn={(data: Record<string, unknown>) =>
drawingMasterDataService.createShopSubCategory({
...data,
...(data as unknown as CreateShopSubCategoryDto),
projectId: selectedProjectId,
isActive: data.isActive === 'true' || data.isActive === true,
})

View File

@@ -46,7 +46,7 @@ export default function CorrespondenceTypesPage() {
description="Manage global correspondence types (e.g., LETTER, TRANSMITTAL)"
queryKey={["correspondence-types"]}
fetchFn={() => masterDataService.getCorrespondenceTypes()}
createFn={(data) => masterDataService.createCorrespondenceType(data)}
createFn={(data: Record<string, unknown>) => masterDataService.createCorrespondenceType(data as unknown as Parameters<typeof masterDataService.createCorrespondenceType>[0])}
updateFn={(id, data) => masterDataService.updateCorrespondenceType(id, data)}
deleteFn={(id) => masterDataService.deleteCorrespondenceType(id)}
columns={columns}

View File

@@ -56,7 +56,7 @@ export default function DisciplinesPage() {
description="Manage system disciplines (e.g., ARCH, STR, MEC)"
queryKey={['disciplines', selectedContractId ?? 'all']}
fetchFn={() => masterDataService.getDisciplines(selectedContractId ? parseInt(selectedContractId) : undefined)}
createFn={(data) => masterDataService.createDiscipline(data)}
createFn={(data: Record<string, unknown>) => masterDataService.createDiscipline(data as unknown as Parameters<typeof masterDataService.createDiscipline>[0])}
updateFn={(id, data) => Promise.reject('Not implemented yet')} // Update endpoint needs to be verified/added if missing
deleteFn={(id) => masterDataService.deleteDiscipline(id)}
columns={columns}

View File

@@ -34,7 +34,7 @@ export default function DrawingCategoriesPage() {
description="Manage drawing sub-types and categories"
queryKey={["drawing-categories"]}
fetchFn={() => masterDataService.getSubTypes(1)} // Default contract ID 1
createFn={(data) => masterDataService.createSubType({ ...data, contractId: 1, correspondenceTypeId: 3 })} // Assuming 3 is Drawings, hardcoded for now to prevent error
createFn={(data: Record<string, unknown>) => masterDataService.createSubType({ ...(data as unknown as Parameters<typeof masterDataService.createSubType>[0]), contractId: 1, correspondenceTypeId: 3 })} // Assuming 3 is Drawings, hardcoded for now to prevent error
updateFn={() => Promise.reject("Not implemented yet")}
deleteFn={() => Promise.reject("Not implemented yet")} // Delete might be restricted
columns={columns}

View File

@@ -59,7 +59,7 @@ export default function RfaTypesPage() {
title="RFA Types Management"
queryKey={['rfa-types', selectedContractId ?? 'all']}
fetchFn={() => masterDataService.getRfaTypes(selectedContractId ? parseInt(selectedContractId) : undefined)}
createFn={(data) => masterDataService.createRfaType(data)}
createFn={(data: Record<string, unknown>) => masterDataService.createRfaType(data as unknown as any)}
updateFn={(id, data) => masterDataService.updateRfaType(id, data)}
deleteFn={(id) => masterDataService.deleteRfaType(id)}
columns={columns}

View File

@@ -24,7 +24,7 @@ export default function TagsPage() {
entityName="Tag"
queryKey={["tags"]}
fetchFn={() => masterDataService.getTags()}
createFn={(data: CreateTagDto) => masterDataService.createTag(data)}
createFn={(data: Record<string, unknown>) => masterDataService.createTag(data as unknown as CreateTagDto)}
updateFn={(id, data) => masterDataService.updateTag(id, data)}
deleteFn={(id) => masterDataService.deleteTag(id)}
columns={columns}

View File

@@ -299,8 +299,8 @@ export function UserDialog({ open, onOpenChange, user }: UserDialogProps) {
<div>
<Label className="mb-3 block">Roles</Label>
<div className="space-y-2 border p-3 rounded-md max-h-[200px] overflow-y-auto">
{roles.length === 0 && <p className="text-sm text-muted-foreground">Loading roles...</p>}
{roles.map((role: any) => (
{Array.isArray(roles) && roles.length === 0 && <p className="text-sm text-muted-foreground">Loading roles...</p>}
{Array.isArray(roles) && roles.map((role: any) => (
<div key={role.roleId} className="flex items-start space-x-2">
<Checkbox
id={`role-${role.roleId}`}

View File

@@ -232,7 +232,7 @@ export function CorrespondenceDetail({ data }: CorrespondenceDetailProps) {
${importance === 'URGENT' ? 'bg-red-100 text-red-800' :
importance === 'HIGH' ? 'bg-orange-100 text-orange-800' :
'bg-blue-100 text-blue-800'}`}>
{importance}
{String(importance)}
</span>
</div>
</div>

View File

@@ -52,7 +52,7 @@ export const workflowApi = {
createWorkflow: async (data: CreateWorkflowDto): Promise<Workflow> => {
await new Promise((resolve) => setTimeout(resolve, 800));
const newWorkflow: Workflow = {
workflowId: Math.max(...mockWorkflows.map((w) => w.workflowId)) + 1,
workflowId: Math.max(...mockWorkflows.map((w) => Number(w.workflowId))) + 1,
...data,
version: 1,
isActive: true,

316
specs/deploy-deploy-34.txt Normal file

File diff suppressed because one or more lines are too long