database_dto_ConsultantDto.js

const EmployeurDto = require("../dto/EmployeurDto");
const ConnectedUser = require("./ConnectedUser");
/**
 * @swagger
 * components:
 *   schemas:
 *     newConsultant:
 *       type: object
 *       properties:
 *         birthDate:
 *           type: string
 *           description: L'email de l'administrateur a créer.
 *           example: 04/03/2000
 *         birthPlace:
 *           type: string
 *           description: observations sur l'administrateur.
 *           example: Poissy
 *         secuNum:
 *           type: string
 *           description: le Nom de l'admin.
 *           example: 993039399393939
 *         address:
 *           type: string
 *           description: le Prénom de l'admin.
 *           example:  29 rue charles
 *         zipCode:
 *           type: string
 *           description: le numero de téléphone de l'admin..
 *           example: O619629393
 *         city:
 *           type: string
 *           description: le Prénom de l'admin.
 *           example:  ayoub
 *         createdAt:
 *           type: string
 *           description: le numero de téléphone de l'admin..
 *           example: 09/04/4884
 *         Employeurs:
 *           type: string
 *           description: le Prénom de l'admin.
 *           example:  ayoub
 *         Missions:
 *           type: string
 *           description: le numero de téléphone de l'admin..
 *           example: devops
 *         Utilisateur:
 *           type: string
 *           description: le numero de téléphone de l'admin..
 *           example: 3
 *     Consultant:
 *       allOf:
 *         - type: object
 *           properties:
 *             id:
 *               type: integer
 *               description: The user ID.
 *               example: 0
 *         - $ref: '#/components/schemas/newEmployeur'
 */

/**
 * @memberof Myintranet.DTOS
 */
class ConsultantDto {
  constructor(consultant, light = false) {
    this.id = consultant.id;
    this.birthDate = consultant.birthDate;
    this.birthPlace = consultant.birthPlace;
    this.secuNum = consultant.secuNum;
    this.address = consultant.address;
    this.zipCode = consultant.zipCode;
    this.status = consultant.status;
    this.city = consultant.city;
    this.codePlace = consultant.codePlace;
    this.birthPlace= consultant.birthPlace

    this.createdAt = consultant.createdAt;
    //TODO :  create consultantValidateDto for validation wthout consultantFiles
    if(consultant.consultantFiles){
      this.consultantFiles = consultant.consultantFiles;
    }
    if (!light) {
      this.Employeurs = consultant.Employeurs.map((employeur) => {
        return new EmployeurDto(employeur);
      });
      delete consultant.Missions.deletedAt;
      this.Missions = consultant.Missions;
      this.Missionfiles = consultant.Missionfiles;
    }

    this.Utilisateur = new ConnectedUser(consultant.Utilisateur);
  }
}
module.exports = ConsultantDto;