15 lines
579 B
JavaScript
15 lines
579 B
JavaScript
import { z } from 'zod';
|
|
|
|
export const attendanceCommandSchema = z.object({
|
|
assignmentId: z.string().uuid(),
|
|
sourceType: z.enum(['NFC', 'GEO', 'QR', 'MANUAL', 'SYSTEM']),
|
|
sourceReference: z.string().max(255).optional(),
|
|
nfcTagUid: z.string().max(255).optional(),
|
|
deviceId: z.string().max(255).optional(),
|
|
latitude: z.number().min(-90).max(90).optional(),
|
|
longitude: z.number().min(-180).max(180).optional(),
|
|
accuracyMeters: z.number().int().nonnegative().optional(),
|
|
capturedAt: z.string().datetime().optional(),
|
|
rawPayload: z.record(z.any()).optional(),
|
|
});
|