first commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { z } from 'zod';
|
||||
import { citizenId, isoDate, coordsSchema } from './common';
|
||||
import { DEPARTMENTS } from '../rbac';
|
||||
|
||||
export const dispatchStatus = z.enum(['pending', 'assigned', 'enroute', 'onscene', 'closed']);
|
||||
export type DispatchStatus = z.infer<typeof dispatchStatus>;
|
||||
|
||||
export const dispatchPriority = z.enum(['low', 'medium', 'high']);
|
||||
export type DispatchPriority = z.infer<typeof dispatchPriority>;
|
||||
|
||||
/** Live-Einsatz (Tabelle mdt_dispatch_calls + Realtime via Socket). */
|
||||
export const dispatchCallSchema = z.object({
|
||||
id: z.number().int(),
|
||||
code: z.string(), // 10-Code / Kategorie
|
||||
title: z.string(),
|
||||
description: z.string().default(''),
|
||||
department: z.enum(DEPARTMENTS),
|
||||
priority: dispatchPriority.default('medium'),
|
||||
status: dispatchStatus.default('pending'),
|
||||
location: z.string().nullable(),
|
||||
coords: coordsSchema.nullable(),
|
||||
callerCitizenid: citizenId.nullable(),
|
||||
assignedOfficers: z.array(citizenId).default([]),
|
||||
createdAt: isoDate,
|
||||
updatedAt: isoDate.nullable(),
|
||||
});
|
||||
export type DispatchCall = z.infer<typeof dispatchCallSchema>;
|
||||
|
||||
export const createDispatchCallSchema = z.object({
|
||||
code: z.string().min(1),
|
||||
title: z.string().min(1),
|
||||
description: z.string().default(''),
|
||||
department: z.enum(DEPARTMENTS).default('police'),
|
||||
priority: dispatchPriority.default('medium'),
|
||||
location: z.string().nullable().default(null),
|
||||
coords: coordsSchema.nullable().default(null),
|
||||
callerCitizenid: citizenId.nullable().default(null),
|
||||
});
|
||||
export type CreateDispatchCallInput = z.infer<typeof createDispatchCallSchema>;
|
||||
|
||||
export const assignDispatchSchema = z.object({
|
||||
officers: z.array(citizenId).min(1),
|
||||
status: dispatchStatus.optional(),
|
||||
});
|
||||
export type AssignDispatchInput = z.infer<typeof assignDispatchSchema>;
|
||||
Reference in New Issue
Block a user