Validators_CoptationsValidator.js

const Schema = require('@d3v4pp/validate');
const {email, phone} = require('@d3v4pp/rex')
const {phoneMessages, loginMessages, firstnameMessages, lastnameMessages} = require("./ValidatorsMessagesFR");

const doubleRex = /^(\d{1,11})?(\.?\d{1,2})$/;
const percentRex = /^([0-9]{0,3}[.])?[0-9]{0,2}$/;

/**
 * @memberof Myintranet.Validators
 */
const CoptationsValidator = new Schema({
    idq: {
        type: String,
        length: {max: 200},
        message: {
            length: "la longeur de l'idq ne doit pas depasser 200 charractéres",
            match: "Ce champs doit être une idq valid",
            type: 'la idq doit être une chaine de carractéres.',
            required: 'La siret est un champ obligatoir.'
        }
    },
    formule: {
        type: String,
        length: {max: 200},
        message: {
            length: "la longeur de la formule ne doit pas depasser 200 charractéres",
            match: "Ce champs doit être une formule valid",
            type: 'la formule doit être une chaine de carractéres.',
            required: 'La siret est un champ obligatoir.'
        }
    },
    firstname: {
        type: String,
        required: true,
        length: {max: 200},
        message: {
            length: "la longeur du nom ne doit pas depasser 200 charractéres",
            match: "Ce champs doit être une siret valid",
            type: 'la siret doit être une chaine de carractéres.',
            required: 'Le nom est un champ obligatoir.'
        }
    },
    lastname: {
        type: String,
        required: true,
        length: {max: 200},
        message:  {
            length: "la longeur du prénom ne doit pas depasser 200 charractéres",
            match: "Ce champs doit être une siret valid",
            type: 'la siret doit être une chaine de carractéres.',
            required: 'Le prénom est un champ obligatoir.'
        }

    },
    apporteurName: {
        type: String,
        required: true,
        length: {max: 400},
        message:  {
            length: "la longeur du nom du rapporteur ne doit pas depasser 400 charractéres'",
            match: "Ce champs doit être une apporteurName valid",
            type: 'la apporteurName doit être une chaine de carractéres.',
            required: 'Le nom du rapporteur est un champ obligatoir.'
        }
    },
    tjm: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la siret n'est pas cohérante",
            match: "Ce champs doit être une tjm valid",
            type: 'la tjm doit être une chaine de carractéres.',
            required: 'La tjm est un champ obligatoir.'
        }
    },
    heureBase: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la siret n'est pas cohérante",
            match: "Ce champs doit être une heureBase valid",
            type: 'la heureBase doit être une chaine de carractéres.',
            required: 'La siret est un champ obligatoir.'
        }
    },
    tauxHorraire: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la tauxHorraire n'est pas cohérante",
            match: "Ce champs doit être une tauxHorraire valid",
            type: 'la tauxHorraire doit être une chaine de carractéres.',
            required: 'La tauxHorraire est un champ obligatoir.'
        }
    },
    brutBase: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la brutBase n'est pas cohérante",
            match: "Ce champs doit être une brutBase valid",
            type: 'la brutBase doit être une chaine de carractéres.',
            required: 'La brutBase est un champ obligatoir.'
        }
    },
    nbHeuresabs: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la nbHeuresabs n'est pas cohérante",
            match: "Ce champs doit être une nbHeuresabs valid",
            type: 'la nbHeuresabs doit être une chaine de carractéres.',
            required: 'La nbHeuresabs est un champ obligatoir.'
        }
    },
    montantabs: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la montantabs n'est pas cohérante",
            match: "Ce champs doit être une montantabs valid",
            type: 'la montantabs doit être une chaine de carractéres.',
            required: 'La montantabs est un champ obligatoir.'
        }
    },
    montantdeduit: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la siret n'est pas cohérante",
            match: "Ce champs doit être une siret valid",
            type: 'la siret doit être une chaine de carractéres.',
            required: 'La siret est un champ obligatoir.'
        }
    },
    icp10: {
        type: String,
        required: true,
        match: percentRex,
        message: {
            length: "la longeur de la montantdeduit n'est pas cohérante",
            match: "Ce champs doit être une montantdeduit valid",
            type: 'la montantdeduit doit être une chaine de carractéres.',
            required: 'La montantdeduit est un champ obligatoir.'
        }
    },
    brutMajore: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la brutMajore n'est pas cohérante",
            match: "Ce champs doit être une brutMajore valid",
            type: 'la brutMajore doit être une chaine de carractéres.',
            required: 'La brutMajore est un champ obligatoir.'
        }
    },
    netAVImpot: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la netAVImpot n'est pas cohérante",
            match: "Ce champs doit être une netAVImpot valid",
            type: 'la netAVImpot doit être une chaine de carractéres.',
            required: 'La netAVImpot est un champ obligatoir.'
        }
    }, netAPAYER: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la netAPAYER n'est pas cohérante",
            match: "Ce champs doit être une netAPAYER valid",
            type: 'la netAPAYER doit être une chaine de carractéres.',
            required: 'La netAPAYER est un champ obligatoir.'
        }
    }, escompte: {
        type: String,
        required: true,
        match: percentRex,
        message: {
            length: "la longeur de la escompte n'est pas cohérante",
            match: "Ce champs doit être une escompte valid",
            type: 'la escompte doit être une chaine de carractéres.',
            required: 'La escompte est un champ obligatoir.'
        }
    },
    nbjourouvre: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la nbjourouvre n'est pas cohérante",
            match: "Ce champs doit être une nbjourouvre valid",
            type: 'la nbjourouvre doit être une chaine de carractéres.',
            required: 'La nbjourouvre est un champ obligatoir.'
        }
    },
    Nbjourtravaille: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la Nbjourtravaille n'est pas cohérante",
            match: "Ce champs doit être une Nbjourtravaille valid",
            type: 'la Nbjourtravaille doit être une chaine de carractéres.',
            required: 'La Nbjourtravaille est un champ obligatoir.'
        }
    },
    Nbjourabs: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la Nbjourabs n'est pas cohérante",
            match: "Ce champs doit être une Nbjourabs valid",
            type: 'la Nbjourabs doit être une chaine de carractéres.',
            required: 'La Nbjourabs est un champ obligatoir.'
        }
    },
    percent: {
        type: String,
        required: true,
        match: percentRex,
        message: {
            length: "la longeur de la percent n'est pas cohérante",
            match: "Ce champs doit être une percent valid",
            type: 'la percent doit être une chaine de carractéres.',
            required: 'La percent est un champ obligatoir.'
        }
    },
    tauxGarantie: {
        type: String,
        required: true,
        match: percentRex,
        message: {
            length: "la longeur de la tauxGarantie n'est pas cohérante",
            match: "Ce champs doit être une tauxGarantie valid",
            type: 'la tauxGarantie doit être une chaine de carractéres.',
            required: 'La tauxGarantie est un champ obligatoir.'
        }
    },
    nbkmAR: {
        type: String,
        required: true,
        match: doubleRex,
        message: {
            length: "la longeur de la nbkmAR n'est pas cohérante",
            match: "Ce champs doit être une nbkmAR valid",
            type: 'la nbkmAR doit être une chaine de carractéres.',
            required: 'La nbkmAR est un champ obligatoir.'
        }
    },
    commentaires: {
        type: String,
        required: true,
        length: {max: 600},
        message: {
            length: "la longeur de la commentaires n'est pas cohérante",
            match: "Ce champs doit être une commentaires valid",
            type: 'la commentaires doit être une chaine de carractéres.',
            required: 'La commentaires est un champ obligatoir.'
        }
    },
    Societe: {
        type: String,
        required: true,
        length: {max: 200},
        message: {
            length: "la longeur de la Societe n'est pas cohérante",
            match: "Ce champs doit être une Societe valid",
            type: 'la Societe doit être une chaine de carractéres.',
            required: 'La Societe est un champ obligatoir.'
        }
    }
})

module.exports = CoptationsValidator;