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

@Entity("subscription_plans")
export class SubscriptionPlan {
  @PrimaryGeneratedColumn()
  id: number

  @Column({ type: "varchar", length: 255 })
  name: string

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

  @Column({ type: "decimal", precision: 10, scale: 2, nullable: true })
  price?: number

  @Column({ type: "varchar", length: 10, nullable: true, default: "usd" })
  currency?: string

  @Column({ type: "varchar", length: 20, nullable: true, default: "month" })
  interval?: string

  @Column({ name: "interval_count", type: "int", nullable: true, default: 1 })
  interval_count?: number

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

  @Column({
    name: "stripe_price_id",
    type: "varchar",
    length: 255,
    nullable: true,
  })
  stripe_price_id?: string

  @Column({
    name: "stripe_product_id",
    type: "varchar",
    length: 255,
    nullable: true,
  })
  stripe_product_id?: string

  @Column({ name: "is_active", type: "tinyint", nullable: true, default: 1 })
  is_active?: number

  @Column({ name: "sort_order", type: "int", nullable: true, default: 0 })
  sort_order?: number

  @CreateDateColumn({ type: "timestamp", nullable: true })
  created_at?: Date

  @UpdateDateColumn({ type: "timestamp", nullable: true })
  updated_at?: Date
}
