Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 1x 39x 52x 1x | 'use strict';
const ValidatorAbstract = use('C2C/Abstracts/ValidatorAbstract');
class StoreSystemBooking extends ValidatorAbstract {
get rules() {
return {
status: 'integer',
discount: 'integer|above:-1',
sourceId: 'required|string',
targetSystemStatus: 'string',
paymentMethodCode: 'string',
additionalPrice: 'number',
customer: 'required|object',
'customer.id': 'required|string|max:255',
'customer.name': 'required|string|max:255',
'customer.phoneNumber': `string|max:30`,
'customer.email': `email|max:255`,
'customer.birthday': `dateFormat:YYYY-MM-DD`,
'customer.gender': 'integer',
'customer.avatar': 'string|imageUrl',
'customer.phonetic': 'string',
'customer.username': 'string',
services: 'required|array',
'services.*': 'object',
'services.*.serviceId': 'string|available:services,id',
'services.*.staffId': 'required|string|available:staff,id',
'services.*.startTime': 'required|date',
cancellationPolicy: 'object',
'cancellationPolicy.name': 'required|string',
'cancellationPolicy.before1Day': 'required|number',
'cancellationPolicy.onDay': 'required|number',
extraInfo: 'object|extra:2550',
startTime: 'date',
endTime: 'date',
totalDuration: 'integer|above:0',
totalPrice: 'integer|above:-1',
finalPrice: 'integer|above:-1',
};
}
get sanitizationRules() {
return {
status: 'to_int',
discount: 'to_int',
'services.*.startTime': 'to_date',
};
}
}
module.exports = StoreSystemBooking;
|