import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  UpdateDateColumn,
  Index,
} from "typeorm"

@Entity("app_version")
export class AppVersion {
  @PrimaryGeneratedColumn()
  id: number

  @Column({ type: "enum", enum: ["android", "ios", "web"] })
  @Index()
  platform: "android" | "ios" | "web"

  @Column({ type: "varchar" })
  latest_version: string

  @Column({ type: "varchar" })
  minimum_supported_version: string

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

  @Column({ type: "varchar" })
  store_url: string

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

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

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

  @Column({ type: "text", nullable: true })
  alert_message?: string

  @Column({ type: "text", nullable: true })
  maintenance_message?: string

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

  @CreateDateColumn()
  created_at: Date

  @UpdateDateColumn()
  updated_at: Date
}
