42 lines
1.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.myHistoricalListQuerySchema = exports.historicalListQuerySchema = exports.liveVolunteersQuerySchema = exports.linkCanvassSchema = exports.submitPointsSchema = exports.startTrackingSchema = void 0;
const zod_1 = require("zod");
const client_1 = require("@prisma/client");
exports.startTrackingSchema = zod_1.z.object({
canvassSessionId: zod_1.z.string().optional(),
latitude: zod_1.z.number().min(-90).max(90).optional(),
longitude: zod_1.z.number().min(-180).max(180).optional(),
});
exports.submitPointsSchema = zod_1.z.object({
points: zod_1.z
.array(zod_1.z.object({
latitude: zod_1.z.number().min(-90).max(90),
longitude: zod_1.z.number().min(-180).max(180),
accuracy: zod_1.z.number().positive().optional(),
recordedAt: zod_1.z.string().datetime(),
eventType: zod_1.z.nativeEnum(client_1.TrackPointEvent).optional(),
}))
.min(1)
.max(100),
});
exports.linkCanvassSchema = zod_1.z.object({
canvassSessionId: zod_1.z.string().min(1),
});
exports.liveVolunteersQuerySchema = zod_1.z.object({
staleCutoffMinutes: zod_1.z.coerce.number().int().positive().default(10),
});
exports.historicalListQuerySchema = zod_1.z.object({
userId: zod_1.z.string().optional(),
from: zod_1.z.string().datetime().optional(),
to: zod_1.z.string().datetime().optional(),
page: zod_1.z.coerce.number().int().positive().default(1),
limit: zod_1.z.coerce.number().int().positive().max(100).default(20),
});
exports.myHistoricalListQuerySchema = zod_1.z.object({
from: zod_1.z.string().datetime().optional(),
to: zod_1.z.string().datetime().optional(),
page: zod_1.z.coerce.number().int().positive().default(1),
limit: zod_1.z.coerce.number().int().positive().max(100).default(15),
});
//# sourceMappingURL=tracking.schemas.js.map