import { IsEmail, Max, MaxLength, Min, MinLength } from 'class-validator'; import dotenv from 'dotenv'; import { Column, CreateDateColumn, Entity, JoinTable, ManyToMany, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; import { MyCrypto } from '../helpers/crypto'; import Discipline from './Discipline'; dotenv.config(); @Entity('student') export default class Student { @PrimaryGeneratedColumn('uuid') id: string; @Column({ type: 'varchar', nullable: false, transformer: MyCrypto, }) @MaxLength(50, { message: 'Nome precisar no máximo 50 caracteres' }) @MinLength(2, { message: 'Nome deve possuir no mínimo 1 caractere' }) name: string; @Column() @Max(99999, { message: 'Chave inválida' }) @Min(10000) key: number; @Column({ transformer: MyCrypto, }) @IsEmail() email: string; @ManyToMany(type => Discipline, { eager: true }) @JoinTable() discipline: Discipline[]; @CreateDateColumn({ name: 'created_At' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_At' }) updatedAt: Date; }