38 lines
892 B
TypeScript
38 lines
892 B
TypeScript
import { sql } from "./connection.ts";
|
|
|
|
export interface PrintJob {
|
|
id: string;
|
|
part_name: string;
|
|
printer_model: string;
|
|
material: string;
|
|
print_time_hours: number;
|
|
weight_grams: number;
|
|
cost_estimate: number;
|
|
status: "completed" | "printing" | "queued";
|
|
bed_fit: string;
|
|
notes?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export const getPrintJobs = async (): Promise<PrintJob[]> => {
|
|
return await sql<PrintJob[]>`
|
|
SELECT * FROM print_farm_jobs ORDER BY
|
|
CASE status
|
|
WHEN 'printing' THEN 1
|
|
WHEN 'queued' THEN 2
|
|
WHEN 'completed' THEN 3
|
|
ELSE 4
|
|
END,
|
|
id ASC
|
|
`;
|
|
};
|
|
|
|
export const updatePrintJobStatus = async (id: string, status: string): Promise<PrintJob[]> => {
|
|
return await sql<PrintJob[]>`
|
|
UPDATE print_farm_jobs
|
|
SET status = ${status}, updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = ${id}
|
|
RETURNING *
|
|
`;
|
|
};
|