import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  ManyToOne,
  OneToMany,
  CreateDateColumn,
  UpdateDateColumn
} from 'typeorm'
import { Carrito } from './Carrito'
import { Prestamo } from './Prestamo'
import { Log } from './Log'
import { IsString, IsBoolean, IsNumber } from 'class-validator'

@Entity()
export class Equipo {
  @PrimaryGeneratedColumn()
  id: number

  @Column()
  @IsString()
  noSerie: string

  @Column()
  @IsString()
  noInventario: string

  @Column()
  @IsNumber()
  alias: number

  @Column({ type: 'boolean', default: false })
  @IsBoolean()
  activo: boolean

  @Column()
  @CreateDateColumn()
  createdAt: Date

  @Column()
  @UpdateDateColumn()
  updatedAt: Date

  @ManyToOne(
    (type) => Carrito,
    (carrito) => carrito.equipos
  )
  carrito: Carrito

  @OneToMany(
    (type) => Prestamo,
    (prestamo) => prestamo.equipo
  )
  prestamos: Prestamo[]

  @ManyToOne(
    (type) => Log,
    (log) => log.equipo
  )
  logs: Log[]
}
