251205:0000 Just start debug backend/frontend
This commit is contained in:
119
frontend/lib/api/drawings.ts
Normal file
119
frontend/lib/api/drawings.ts
Normal file
@@ -0,0 +1,119 @@
|
||||
import { Drawing, CreateDrawingDto, DrawingRevision } from "@/types/drawing";
|
||||
|
||||
// Mock Data
|
||||
const mockDrawings: Drawing[] = [
|
||||
{
|
||||
drawing_id: 1,
|
||||
drawing_number: "A-101",
|
||||
title: "Ground Floor Plan",
|
||||
type: "CONTRACT",
|
||||
discipline_id: 2,
|
||||
discipline: { id: 2, discipline_code: "ARC", discipline_name: "Architecture" },
|
||||
sheet_number: "01",
|
||||
scale: "1:100",
|
||||
current_revision: "0",
|
||||
issue_date: new Date(Date.now() - 100000000).toISOString(),
|
||||
revision_count: 1,
|
||||
revisions: [
|
||||
{
|
||||
revision_id: 1,
|
||||
revision_number: "0",
|
||||
revision_date: new Date(Date.now() - 100000000).toISOString(),
|
||||
revision_description: "Issued for Construction",
|
||||
revised_by_name: "John Doe",
|
||||
file_url: "/mock-drawing.pdf",
|
||||
is_current: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
drawing_id: 2,
|
||||
drawing_number: "S-201",
|
||||
title: "Foundation Details",
|
||||
type: "SHOP",
|
||||
discipline_id: 1,
|
||||
discipline: { id: 1, discipline_code: "STR", discipline_name: "Structure" },
|
||||
sheet_number: "05",
|
||||
scale: "1:50",
|
||||
current_revision: "B",
|
||||
issue_date: new Date().toISOString(),
|
||||
revision_count: 2,
|
||||
revisions: [
|
||||
{
|
||||
revision_id: 3,
|
||||
revision_number: "B",
|
||||
revision_date: new Date().toISOString(),
|
||||
revision_description: "Updated reinforcement",
|
||||
revised_by_name: "Jane Smith",
|
||||
file_url: "/mock-drawing-v2.pdf",
|
||||
is_current: true,
|
||||
},
|
||||
{
|
||||
revision_id: 2,
|
||||
revision_number: "A",
|
||||
revision_date: new Date(Date.now() - 50000000).toISOString(),
|
||||
revision_description: "First Submission",
|
||||
revised_by_name: "Jane Smith",
|
||||
file_url: "/mock-drawing-v1.pdf",
|
||||
is_current: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export const drawingApi = {
|
||||
getAll: async (params?: { type?: "CONTRACT" | "SHOP"; search?: string }) => {
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
|
||||
let filtered = [...mockDrawings];
|
||||
if (params?.type) {
|
||||
filtered = filtered.filter((d) => d.type === params.type);
|
||||
}
|
||||
if (params?.search) {
|
||||
const lowerSearch = params.search.toLowerCase();
|
||||
filtered = filtered.filter((d) =>
|
||||
d.drawing_number.toLowerCase().includes(lowerSearch) ||
|
||||
d.title.toLowerCase().includes(lowerSearch)
|
||||
);
|
||||
}
|
||||
|
||||
return filtered;
|
||||
},
|
||||
|
||||
getById: async (id: number) => {
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
return mockDrawings.find((d) => d.drawing_id === id);
|
||||
},
|
||||
|
||||
create: async (data: CreateDrawingDto) => {
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
const newId = Math.max(...mockDrawings.map((d) => d.drawing_id)) + 1;
|
||||
const newDrawing: Drawing = {
|
||||
drawing_id: newId,
|
||||
drawing_number: data.drawing_number,
|
||||
title: data.title,
|
||||
type: data.drawing_type,
|
||||
discipline_id: data.discipline_id,
|
||||
discipline: { id: data.discipline_id, discipline_code: "MOCK", discipline_name: "Mock Discipline" },
|
||||
sheet_number: data.sheet_number,
|
||||
scale: data.scale,
|
||||
current_revision: "0",
|
||||
issue_date: new Date().toISOString(),
|
||||
revision_count: 1,
|
||||
revisions: [
|
||||
{
|
||||
revision_id: newId * 10,
|
||||
revision_number: "0",
|
||||
revision_date: new Date().toISOString(),
|
||||
revision_description: "Initial Upload",
|
||||
revised_by_name: "Current User",
|
||||
file_url: "#",
|
||||
is_current: true,
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
mockDrawings.unshift(newDrawing);
|
||||
return newDrawing;
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user