import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, ManyToOne } from 'typeorm';
import { Company } from '../companies/company.entity';

@Entity()
export class Coupon {
  @PrimaryGeneratedColumn('uuid')
  id!: string;

  @Column()
  reference!: string;

  @Column('text')
  description!: string;

  @ManyToOne(() => Company, { nullable: true })
  company?: Company;

  @Column('int')
  usageLimit!: number;

  @Column('decimal', { precision: 10, scale: 2, nullable: true },)
  value!: number;

  @Column('text', {nullable: true })
  address!: string;

  @Column('date')
  expirationDate!: Date;

  @Column('text')
  conditions!: string;

  @Column("simple-array")
  products!: string[];

  @Column({ nullable: true })
  imageName?: string;

  @Column({ default: true })
  isActive!: boolean;

  @Column({ type: 'enum', enum: ['percentage', 'fixed'], default: 'fixed' })
  discountType!: 'percentage' | 'fixed';

  @CreateDateColumn()
  createdAt!: Date;

  @UpdateDateColumn()
  updatedAt!: Date;

  @DeleteDateColumn()
  deletedAt?: Date;
}