690320:2126 UUID agian by Claude Sonnet #02
Build and Deploy / deploy (push) Failing after 4m27s
Build and Deploy / deploy (push) Failing after 4m27s
This commit is contained in:
@@ -107,7 +107,7 @@ export function UserDialog({ open, onOpenChange, user }: UserDialogProps) {
|
||||
lastName: user.lastName,
|
||||
isActive: user.isActive,
|
||||
lineId: user.lineId || "",
|
||||
primaryOrganizationId: user.primaryOrganizationId?.toString(),
|
||||
primaryOrganizationId: user.organization?.uuid ?? undefined,
|
||||
roleIds: user.roles?.map((r: { roleId: number }) => r.roleId) || [],
|
||||
password: "",
|
||||
confirmPassword: ""
|
||||
|
||||
@@ -18,9 +18,10 @@ import { FileUploadZone } from "@/components/custom/file-upload-zone";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { Loader2 } from "lucide-react";
|
||||
import { useCreateCorrespondence, useUpdateCorrespondence } from "@/hooks/use-correspondence";
|
||||
import { Organization } from "@/types/organization";
|
||||
import { Organization, Correspondence, CorrespondenceRevision } from "@/types/correspondence";
|
||||
import { useOrganizations, useProjects, useCorrespondenceTypes, useDisciplines } from "@/hooks/use-master-data";
|
||||
import { CreateCorrespondenceDto } from "@/types/dto/correspondence/create-correspondence.dto";
|
||||
import type { ProjectListItem } from "@/lib/services/project.service";
|
||||
import { useState, useEffect } from "react";
|
||||
import { correspondenceService } from "@/lib/services/correspondence.service";
|
||||
|
||||
@@ -42,7 +43,7 @@ const correspondenceSchema = z.object({
|
||||
|
||||
type FormData = z.infer<typeof correspondenceSchema>;
|
||||
|
||||
export function CorrespondenceForm({ initialData, uuid }: { initialData?: any, uuid?: string }) {
|
||||
export function CorrespondenceForm({ initialData, uuid }: { initialData?: Correspondence, uuid?: string }) {
|
||||
const router = useRouter();
|
||||
const createMutation = useCreateCorrespondence();
|
||||
const updateMutation = useUpdateCorrespondence();
|
||||
@@ -53,23 +54,20 @@ export function CorrespondenceForm({ initialData, uuid }: { initialData?: any, u
|
||||
const { data: correspondenceTypes, isLoading: isLoadingTypes } = useCorrespondenceTypes();
|
||||
const { data: disciplines, isLoading: isLoadingDisciplines } = useDisciplines();
|
||||
|
||||
// Extract initial values if editing
|
||||
const currentRev = initialData?.revisions?.find((r: any) => r.isCurrent) || initialData?.revisions?.[0];
|
||||
// Extract initial values if editing — ADR-019: use nested relation UUIDs, never raw INT FK columns
|
||||
const currentRev = initialData?.revisions?.find((r: CorrespondenceRevision) => r.isCurrent) ?? initialData?.revisions?.[0];
|
||||
const defaultValues: Partial<FormData> = {
|
||||
projectId: initialData?.projectId ? String(initialData.projectId) : undefined,
|
||||
projectId: initialData?.project?.uuid ?? undefined,
|
||||
documentTypeId: initialData?.correspondenceTypeId || undefined,
|
||||
disciplineId: initialData?.disciplineId || undefined,
|
||||
subject: currentRev?.subject || currentRev?.title || "",
|
||||
subject: currentRev?.subject || "",
|
||||
description: currentRev?.description || "",
|
||||
body: currentRev?.body || "",
|
||||
remarks: currentRev?.remarks || "",
|
||||
dueDate: currentRev?.dueDate ? new Date(currentRev.dueDate).toISOString().split('T')[0] : undefined,
|
||||
fromOrganizationId: initialData?.originatorId ? String(initialData.originatorId) : undefined,
|
||||
// Map initial recipient (TO) - Simplified for now
|
||||
toOrganizationId: initialData?.recipients?.find((r: any) => r.recipientType === 'TO')?.recipientOrganizationId
|
||||
? String(initialData.recipients.find((r: any) => r.recipientType === 'TO').recipientOrganizationId)
|
||||
: undefined,
|
||||
importance: currentRev?.details?.importance || "NORMAL",
|
||||
fromOrganizationId: initialData?.originator?.uuid ?? undefined,
|
||||
toOrganizationId: initialData?.recipients?.find(r => r.recipientType === 'TO')?.recipientOrganization?.uuid ?? undefined,
|
||||
importance: (currentRev?.details?.['importance'] as "NORMAL" | "HIGH" | "URGENT") ?? "NORMAL",
|
||||
};
|
||||
|
||||
const {
|
||||
@@ -219,8 +217,8 @@ export function CorrespondenceForm({ initialData, uuid }: { initialData?: any, u
|
||||
<SelectValue placeholder={isLoadingProjects ? "Loading..." : "Select Project"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(projects || []).map((p: any) => (
|
||||
<SelectItem key={p.id} value={String(p.id)}>
|
||||
{(projects || []).map((p: ProjectListItem) => (
|
||||
<SelectItem key={p.uuid} value={p.uuid}>
|
||||
{p.projectName} ({p.projectCode})
|
||||
</SelectItem>
|
||||
))}
|
||||
@@ -243,7 +241,7 @@ export function CorrespondenceForm({ initialData, uuid }: { initialData?: any, u
|
||||
<SelectValue placeholder={isLoadingTypes ? "Loading..." : "Select Type"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(correspondenceTypes || []).map((t: any) => (
|
||||
{(correspondenceTypes || []).map((t: { id: number; typeName: string; typeCode: string }) => (
|
||||
<SelectItem key={t.id} value={String(t.id)}>
|
||||
{t.typeName} ({t.typeCode})
|
||||
</SelectItem>
|
||||
@@ -267,7 +265,7 @@ export function CorrespondenceForm({ initialData, uuid }: { initialData?: any, u
|
||||
<SelectValue placeholder={isLoadingDisciplines ? "Loading..." : "Select Discipline (Optional)"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{(disciplines || []).map((d: any) => (
|
||||
{(disciplines || []).map((d: { id: number; disciplineCode?: string; codeNameEn?: string }) => (
|
||||
<SelectItem key={d.id} value={String(d.id)}>
|
||||
{d.codeNameEn || d.disciplineCode}
|
||||
</SelectItem>
|
||||
|
||||
Reference in New Issue
Block a user