import {
  Column,
  CreateDateColumn,
  Entity,
  JoinColumn,
  ManyToOne,
  PrimaryGeneratedColumn,
  UpdateDateColumn,
} from "typeorm"
import { Auth } from "./auth.entity"

@Entity("user_access_tokens")
export class UserLogin {
  @PrimaryGeneratedColumn()
  id: number

  @Column({ type: "int", nullable: false })
  user_id: number

  @Column({ type: "int", nullable: true })
  company_id?: number

  @Column({ type: "varchar", nullable: true })
  device_id?: string

  @Column({ type: "varchar", nullable: true })
  device_token?: string

  @Column({ type: "varchar", nullable: false })
  refresh_token: string

  @Column({ type: "varchar", nullable: false })
  refresh_token_expire_at: string

  @CreateDateColumn({
    type: "timestamp",
    nullable: true,
    default: () => "NOW()",
  })
  created_at: Date

  @UpdateDateColumn({
    type: "timestamp",
    nullable: true,
    default: () => "NOW()",
  })
  updated_at: Date

  @ManyToOne(() => Auth, (user) => user.userLogins)
  @JoinColumn({ name: "user_id" })
  user: Auth
}
