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

@Entity("password_setup_tokens")
export class PasswordSetupToken {
  @PrimaryGeneratedColumn()
  id: number

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

  @Column({ type: "varchar", length: 500, nullable: false })
  token: string

  @Column({ type: "timestamp", nullable: false })
  expires_at: Date

  @Column({ type: "boolean", default: false })
  is_used: boolean

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

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