690327:0024 Fixing Refactor ADR-019 Naming convention uuid #11
This commit is contained in:
@@ -38,7 +38,7 @@ import { SearchContractDto, CreateContractDto, UpdateContractDto } from '@/types
|
||||
import { AxiosError } from 'axios';
|
||||
|
||||
interface _Project {
|
||||
id: string; // ADR-019: uuid exposed as 'id' (string)
|
||||
publicId: string; // ADR-019: uuid exposed as 'publicId' (string)
|
||||
projectCode: string;
|
||||
projectName: string;
|
||||
}
|
||||
@@ -206,8 +206,8 @@ export default function ContractsPage() {
|
||||
|
||||
const handleEdit = (contract: Contract) => {
|
||||
setEditingUuid(contract.id);
|
||||
// ADR-019: project.id is the project's UUID (exposed via @Expose)
|
||||
const pId = contract.project?.id || '';
|
||||
// ADR-019: project.publicId is the project's UUID
|
||||
const pId = contract.project?.publicId || '';
|
||||
reset({
|
||||
contractCode: contract.contractCode,
|
||||
contractName: contract.contractName,
|
||||
@@ -299,8 +299,8 @@ export default function ContractsPage() {
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{projects?.map((p) => (
|
||||
// ADR-019: Project exposes UUID as 'id' (string)
|
||||
<SelectItem key={p.id} value={p.id}>
|
||||
// ADR-019: Project exposes UUID as 'publicId'
|
||||
<SelectItem key={p.publicId} value={p.publicId}>
|
||||
{p.projectCode} - {p.projectName}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
@@ -67,8 +67,8 @@ export default function ContractCategoriesPage() {
|
||||
)}
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(projects as { id?: number; uuid?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.uuid || project.id} value={String(project.id || project.uuid)}>
|
||||
{(projects as { id?: number; publicId?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
||||
{project.projectCode} - {project.projectName}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
@@ -59,8 +59,8 @@ export default function ContractSubCategoriesPage() {
|
||||
)}
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(projects as { id?: number; uuid?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.uuid || project.id} value={String(project.id || project.uuid)}>
|
||||
{(projects as { id?: number; publicId?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
||||
{project.projectCode} - {project.projectName}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
@@ -59,8 +59,8 @@ export default function ContractVolumesPage() {
|
||||
)}
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(projects as { id?: number; uuid?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.uuid || project.id} value={String(project.id || project.uuid)}>
|
||||
{(projects as { id?: number; publicId?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
||||
{project.projectCode} - {project.projectName}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
@@ -70,8 +70,8 @@ export default function ShopMainCategoriesPage() {
|
||||
)}
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(projects as { id?: number; uuid?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.uuid || project.id} value={String(project.id || project.uuid)}>
|
||||
{(projects as { id?: number; publicId?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
||||
{project.projectCode} - {project.projectName}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
@@ -70,8 +70,8 @@ export default function ShopSubCategoriesPage() {
|
||||
)}
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(projects as { id?: number; uuid?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.uuid || project.id} value={String(project.id || project.uuid)}>
|
||||
{(projects as { id?: number; publicId?: string; projectCode: string; projectName: string }[]).map((project) => (
|
||||
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
||||
{project.projectCode} - {project.projectName}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
@@ -24,12 +24,15 @@ export default function EditTemplatePage() {
|
||||
const { data: correspondenceTypes = [] } = useCorrespondenceTypes();
|
||||
const { data: projects = [] } = useProjects();
|
||||
const projectId = template?.projectId || 1;
|
||||
const { data: contracts = [] } = useContracts(projectId);
|
||||
const contractId = contracts[0]?.id;
|
||||
const { data: contractsData } = useContracts(projectId);
|
||||
const contracts = Array.isArray(contractsData) ? contractsData : [];
|
||||
const firstContract = contracts[0] as { id?: number; publicId?: string } | undefined;
|
||||
const contractId = firstContract?.publicId ?? firstContract?.id;
|
||||
const { data: disciplines = [] } = useDisciplines(contractId);
|
||||
|
||||
const selectedProjectName =
|
||||
projects.find((p: { id?: number; uuid?: string; projectCode: string; projectName: string }) => p.id === projectId)
|
||||
projects.find((p: { id?: number; publicId?: string; projectCode: string; projectName: string }) =>
|
||||
String(p.publicId ?? p.id) === String(projectId))
|
||||
?.projectName || 'LCBP3';
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -14,12 +14,15 @@ export default function NewTemplatePage() {
|
||||
const { data: correspondenceTypes = [] } = useCorrespondenceTypes();
|
||||
const { data: projects = [] } = useProjects();
|
||||
const projectId = 1; // Default or sync with selection
|
||||
const { data: contracts = [] } = useContracts(projectId);
|
||||
const contractId = contracts[0]?.id;
|
||||
const { data: contractsData } = useContracts(projectId);
|
||||
const contracts = Array.isArray(contractsData) ? contractsData : [];
|
||||
const firstContract = contracts[0] as { id?: number; publicId?: string } | undefined;
|
||||
const contractId = firstContract?.publicId ?? firstContract?.id;
|
||||
const { data: disciplines = [] } = useDisciplines(contractId);
|
||||
|
||||
const selectedProjectName =
|
||||
projects.find((p: { id: number; projectName: string }) => p.id === projectId)?.projectName || 'LCBP3';
|
||||
projects.find((p: { id?: number; publicId?: string; projectName: string }) =>
|
||||
String(p.publicId ?? p.id) === String(projectId))?.projectName || 'LCBP3';
|
||||
|
||||
const handleSave = async (data: Partial<NumberingTemplate>) => {
|
||||
try {
|
||||
|
||||
@@ -53,7 +53,8 @@ export default function NumberingPage() {
|
||||
|
||||
// Master Data
|
||||
const { data: correspondenceTypes = [] } = useCorrespondenceTypes();
|
||||
const { data: contracts = [] } = useContracts(selectedProjectId);
|
||||
const { data: contractsData } = useContracts(selectedProjectId);
|
||||
const contracts = Array.isArray(contractsData) ? contractsData : [];
|
||||
const firstContract = contracts[0] as { id?: number; publicId?: string } | undefined;
|
||||
const contractId = firstContract?.publicId ?? firstContract?.id;
|
||||
const { data: disciplines = [] } = useDisciplines(contractId);
|
||||
@@ -147,8 +148,7 @@ export default function NumberingPage() {
|
||||
.filter(
|
||||
(t) =>
|
||||
!t.projectId ||
|
||||
String(t.project?.id ?? t.project?.publicId) === selectedProjectId ||
|
||||
t.project?.publicId === selectedProjectId
|
||||
String(t.project?.publicId) === selectedProjectId
|
||||
)
|
||||
.map((template) => (
|
||||
<Card key={template.id} className="p-6 hover:shadow-md transition-shadow">
|
||||
|
||||
@@ -33,7 +33,7 @@ import {
|
||||
import { Skeleton } from '@/components/ui/skeleton';
|
||||
|
||||
interface Project {
|
||||
id: string; // ADR-019: uuid exposed as 'id'
|
||||
publicId: string; // ADR-019: uuid exposed as 'publicId'
|
||||
projectCode: string;
|
||||
projectName: string;
|
||||
isActive: boolean;
|
||||
@@ -71,7 +71,7 @@ export default function ProjectsPage() {
|
||||
|
||||
const confirmDelete = () => {
|
||||
if (projectToDelete) {
|
||||
deleteProject.mutate(projectToDelete.id, {
|
||||
deleteProject.mutate(projectToDelete.publicId, {
|
||||
onSuccess: () => {
|
||||
setDeleteDialogOpen(false);
|
||||
setProjectToDelete(null);
|
||||
@@ -145,7 +145,7 @@ export default function ProjectsPage() {
|
||||
];
|
||||
|
||||
const handleEdit = (project: Project) => {
|
||||
setEditingUuid(project.id);
|
||||
setEditingUuid(project.publicId);
|
||||
reset({
|
||||
projectCode: project.projectCode,
|
||||
projectName: project.projectName,
|
||||
|
||||
@@ -27,10 +27,10 @@ export default function TagsPage() {
|
||||
accessorKey: 'project_id',
|
||||
header: 'Project',
|
||||
cell: ({ row }) => {
|
||||
const item = row.original as Tag & { project?: { id?: number | string; projectName?: string; projectCode?: string } };
|
||||
const item = row.original as Tag & { project?: { id?: number | string; publicId?: string; projectName?: string; projectCode?: string } };
|
||||
const project = item.project;
|
||||
if (!project) return <span className="text-muted-foreground italic">Global</span>;
|
||||
return (project.projectName || project.projectCode || `Project ${project.id}`) as React.ReactNode;
|
||||
return (project.projectName || project.projectCode || `Project ${project.publicId || project.id}`) as React.ReactNode;
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -75,10 +75,10 @@ export default function TagsPage() {
|
||||
const items = await masterDataService.getTags();
|
||||
// ADR-019: Map project_id INT → project UUID for edit mode select matching
|
||||
return items.map((item) => {
|
||||
const rec = item as Tag & { project?: { id?: number | string; uuid?: string }; project_id?: number | string };
|
||||
const rec = item as Tag & { project?: { id?: number | string; publicId?: string }; project_id?: number | string };
|
||||
return {
|
||||
...item,
|
||||
project_id: rec.project?.id || rec.project?.uuid || (rec.project_id ? String(rec.project_id) : null),
|
||||
project_id: rec.project?.publicId || rec.project?.id || (rec.project_id ? String(rec.project_id) : null),
|
||||
} as Tag;
|
||||
});
|
||||
}}
|
||||
|
||||
@@ -40,8 +40,8 @@ export default function DrawingsPage() {
|
||||
)}
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{projects.map((project: { id: string; projectName: string; projectCode: string }) => (
|
||||
<SelectItem key={project.id} value={project.id}>
|
||||
{projects.map((project: { id?: number; publicId?: string; projectName: string; projectCode: string }) => (
|
||||
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
||||
{project.projectCode} - {project.projectName}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user