custom-nas/src/db/printfarm.ts

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 *
`;
};