From 8e2a9d8afbc51b0034c61c51343890a6fb5eea8b Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Thu, 10 Feb 2022 21:23:43 +0300 Subject: [PATCH] Create channels.js --- scripts/db/schemes/channels.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 scripts/db/schemes/channels.js diff --git a/scripts/db/schemes/channels.js b/scripts/db/schemes/channels.js new file mode 100644 index 0000000..c915ccf --- /dev/null +++ b/scripts/db/schemes/channels.js @@ -0,0 +1,27 @@ +const Joi = require('joi') + +module.exports = { + id: Joi.string() + .regex(/^[A-Za-z0-9]+\.[a-z]{2}$/) + .required(), + name: Joi.string() + .regex(/^[\sa-zA-Z\u00C0-\u00FF0-9-!:&.+'/»#%°$@?()]+$/) + .required(), + network: Joi.string().allow(null), + country: Joi.string() + .regex(/^[A-Z]{2}$/) + .required(), + subdivision: Joi.string() + .regex(/^[A-Z]{2}-[A-Z0-9]{1,3}$/) + .allow(null), + city: Joi.string().allow(null), + broadcast_area: Joi.array().items( + Joi.string().regex(/^(s\/[A-Z]{2}-[A-Z0-9]{1,3}|c\/[A-Z]{2}|r\/[A-Z0-9]{3,7})$/) + ), + languages: Joi.array() + .items(Joi.string().regex(/^[a-z]{3}$/)) + .allow(''), + categories: Joi.array().items(Joi.string().regex(/^[a-z]+$/)), + is_nsfw: Joi.boolean().required(), + logo: Joi.string().uri().allow(null) +}