80 lines
1.9 KiB
TypeScript
80 lines
1.9 KiB
TypeScript
// Entity Interfaces
|
|
export interface DrawingRevision {
|
|
revisionId: number;
|
|
revisionNumber: string;
|
|
title?: string; // Added
|
|
legacyDrawingNumber?: string; // Added
|
|
revisionDate: string;
|
|
revisionDescription?: string;
|
|
revisedByName: string;
|
|
fileUrl: string;
|
|
isCurrent: boolean | null; // Updated: null = not current (MariaDB UNIQUE pattern)
|
|
createdBy?: number; // Added v1.7.0
|
|
updatedBy?: number; // Added v1.7.0
|
|
}
|
|
|
|
export interface ContractDrawing {
|
|
id: number;
|
|
contractDrawingNo: string;
|
|
title: string;
|
|
projectId: number;
|
|
mapCatId?: number;
|
|
volumeId?: number;
|
|
volumePage?: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
export interface ShopDrawing {
|
|
id: number;
|
|
drawingNumber: string;
|
|
projectId: number;
|
|
mainCategoryId: number;
|
|
subCategoryId: number;
|
|
currentRevision?: DrawingRevision;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
// title removed
|
|
}
|
|
|
|
export interface AsBuiltDrawing {
|
|
id: number;
|
|
drawingNumber: string;
|
|
projectId: number;
|
|
mainCategoryId: number;
|
|
subCategoryId: number;
|
|
currentRevision?: DrawingRevision;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
// Unified Type for List
|
|
export interface Drawing {
|
|
drawingId: number;
|
|
drawingNumber: string;
|
|
title: string; // Display title (from current revision for Shop/AsBuilt)
|
|
discipline?: string | { disciplineCode: string; disciplineName: string };
|
|
type?: string;
|
|
status?: string;
|
|
revision?: string;
|
|
sheetNumber?: string;
|
|
legacyDrawingNumber?: string; // Added for display
|
|
scale?: string;
|
|
issueDate?: string;
|
|
revisionCount?: number;
|
|
revisions?: DrawingRevision[];
|
|
volumePage?: number; // Contract only
|
|
createdAt?: string;
|
|
updatedAt?: string;
|
|
}
|
|
|
|
export interface CreateDrawingDto {
|
|
drawingType: "CONTRACT" | "SHOP";
|
|
drawingNumber: string;
|
|
title: string;
|
|
disciplineId: number;
|
|
sheetNumber: string;
|
|
scale?: string;
|
|
file: File;
|
|
}
|