"feat: Added debug server and related components for improved development experience"
This commit is contained in:
41
frontend/src/utils/printers.ts
Normal file
41
frontend/src/utils/printers.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import type { InferResultType } from "@/utils/drizzle";
|
||||
|
||||
export enum PrinterStatus {
|
||||
IDLE = 0,
|
||||
OUT_OF_ORDER = 1,
|
||||
RESERVED = 2,
|
||||
}
|
||||
|
||||
export function derivePrinterStatus(
|
||||
printer: InferResultType<"printers", { printJobs: true }>,
|
||||
) {
|
||||
if (printer.status === PrinterStatus.OUT_OF_ORDER) {
|
||||
return PrinterStatus.OUT_OF_ORDER;
|
||||
}
|
||||
|
||||
const activePrintJob = printer.printJobs[0];
|
||||
|
||||
if (!activePrintJob || activePrintJob.aborted) {
|
||||
return PrinterStatus.IDLE;
|
||||
}
|
||||
|
||||
const now = Date.now();
|
||||
const startAt = new Date(activePrintJob.startAt).getTime();
|
||||
const endAt = startAt + activePrintJob.durationInMinutes * 60 * 1000;
|
||||
if (now < endAt) {
|
||||
return PrinterStatus.RESERVED;
|
||||
}
|
||||
|
||||
return PrinterStatus.IDLE;
|
||||
}
|
||||
|
||||
export function translatePrinterStatus(status: PrinterStatus) {
|
||||
switch (status) {
|
||||
case PrinterStatus.IDLE:
|
||||
return "Verfügbar";
|
||||
case PrinterStatus.OUT_OF_ORDER:
|
||||
return "Außer Betrieb";
|
||||
case PrinterStatus.RESERVED:
|
||||
return "Reserviert";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user