application planning

This commit is contained in:
Jake Kasper
2025-08-23 13:18:53 -04:00
parent f2f3ee52cf
commit f480fddc2c
5 changed files with 294 additions and 26 deletions

View File

@@ -94,13 +94,30 @@ const userProductSchema = Joi.object({
const applicationPlanSchema = Joi.object({
lawnSectionId: Joi.number().integer().positive().required(),
equipmentId: Joi.number().integer().positive().required(),
nozzleId: Joi.number().integer().positive().optional(),
plannedDate: Joi.date().required(),
notes: Joi.string().allow('').optional(),
areaSquareFeet: Joi.number().positive().optional(),
equipment: Joi.object({
id: Joi.number().integer().positive().optional(),
categoryName: Joi.string().optional(),
tankSizeGallons: Joi.number().positive().allow(null).optional(),
pumpGpm: Joi.number().positive().allow(null).optional(),
sprayWidthFeet: Joi.number().positive().allow(null).optional(),
capacityLbs: Joi.number().positive().allow(null).optional(),
spreadWidth: Joi.number().positive().allow(null).optional()
}).optional(),
nozzle: Joi.object({
id: Joi.number().integer().positive().optional(),
flowRateGpm: Joi.number().positive().allow(null).optional(),
sprayAngle: Joi.number().integer().allow(null).optional()
}).allow(null).optional(),
products: Joi.array().items(Joi.object({
productId: Joi.number().integer().positive().optional(),
userProductId: Joi.number().integer().positive().optional(),
rateAmount: Joi.number().positive().required(),
rateUnit: Joi.string().max(50).required()
rateUnit: Joi.string().max(50).required(),
applicationType: Joi.string().valid('liquid', 'granular').optional()
})).min(1).required()
});