66 lines
1.5 KiB
TypeScript
66 lines
1.5 KiB
TypeScript
export interface RFAItem {
|
|
id?: number;
|
|
itemNo: string;
|
|
description: string;
|
|
quantity: number;
|
|
unit: string;
|
|
status?: "PENDING" | "APPROVED" | "REJECTED";
|
|
}
|
|
|
|
export interface RFA {
|
|
id: number; // Shared PK with Correspondence
|
|
rfaTypeId: number;
|
|
createdBy: number;
|
|
disciplineId?: number;
|
|
revisions: {
|
|
id: number;
|
|
revisionNumber: number;
|
|
subject: string;
|
|
isCurrent: boolean;
|
|
createdAt?: string;
|
|
statusCode?: { statusCode: string; statusName: string };
|
|
items?: {
|
|
shopDrawingRevision?: {
|
|
id: number;
|
|
revisionLabel: string;
|
|
shopDrawing?: { drawingType?: { hasNumber: boolean } }; // Mock structure
|
|
attachments?: { id: number; url: string; name: string }[]
|
|
}
|
|
}[];
|
|
}[];
|
|
discipline?: {
|
|
id: number;
|
|
name: string;
|
|
code: string;
|
|
};
|
|
// Shared Correspondence Relation
|
|
correspondence?: {
|
|
id: number;
|
|
correspondenceNumber: string;
|
|
projectId: number;
|
|
originatorId?: number;
|
|
createdAt?: string;
|
|
project?: {
|
|
projectName: string;
|
|
projectCode: string;
|
|
};
|
|
};
|
|
|
|
// Deprecated/Mapped fields
|
|
correspondenceNumber?: string; // Convenience accessor
|
|
}
|
|
|
|
export interface CreateRFADto {
|
|
projectId: number;
|
|
rfaTypeId: number;
|
|
disciplineId?: number;
|
|
subject: string;
|
|
body?: string; // [New]
|
|
remarks?: string; // [New]
|
|
dueDate?: string; // [New]
|
|
description?: string;
|
|
documentDate?: string;
|
|
details?: Record<string, any>;
|
|
shopDrawingRevisionIds?: number[];
|
|
}
|