import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  ManyToOne,
  UpdateDateColumn,
  CreateDateColumn
} from 'typeorm'
import { Usuario } from './Usuario'
import { Reporte } from './Reporte'
import { Equipo } from './Equipo'
import { Mesa } from './Mesa'
import { Operador } from './Operador'
import { Horario } from './Horario'

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

  @Column({ default: false })
  activo: boolean

  @Column({ default: true })
  reservado: boolean

  @UpdateDateColumn()
  updatedAt: Date

  @CreateDateColumn()
  createdAt: Date

  horaMaxEntrega: string

  qr: string

  @ManyToOne(
    (type) => Usuario,
    (usuario) => usuario.prestamos
  )
  usuario: Usuario

  @ManyToOne(
    (type) => Mesa,
    (mesa) => mesa.prestamos
  )
  mesa: Mesa

  @ManyToOne(
    (type) => Reporte,
    (reporte) => reporte.prestamos
  )
  reporte: Reporte

  @ManyToOne(
    (type) => Equipo,
    (equipo) => equipo.prestamos
  )
  equipo: Equipo

  @ManyToOne(
    (type) => Operador,
    (operador) => operador.entregas
  )
  operadorEntrega: Operador

  @ManyToOne(
    (type) => Operador,
    (operador) => operador.regresos
  )
  @ManyToOne(
    (type) => Horario,
    (horario) => horario.prestamos
  )
  horario: Horario

  operadorRegreso: Operador
}
