import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  UpdateDateColumn,
} from 'typeorm';

export type EstadoLead =
  | 'nuevo'
  | 'en_proceso'
  | 'apertura'
  | 'espacio'
  | 'tamano'
  | 'estilo'
  | 'urgencia'
  | 'presupuesto'
  | 'fin_viable'
  | 'fin_no_viable'
  | 'recopilando_datos'
  | 'completado'
  | 'no_viable'
  | 'perdido';

@Entity('leads')
export class Lead {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ type: 'text', nullable: true })
  nombre: string;

  @Column({ type: 'text', nullable: true })
  telefono: string;

  @Column({ type: 'text', nullable: true })
  email: string;

  @Column({ type: 'text', nullable: true })
  espacio: string;

  @Column({ type: 'text', nullable: true })
  rango_m2: string;

  @Column({ type: 'text', nullable: true })
  estilo: string;

  @Column({ type: 'text', nullable: true })
  urgencia: string;

  @Column({ type: 'text', nullable: true })
  presupuesto_declarado: string;

  @Column({ type: 'boolean', nullable: true })
  viable: boolean;

  @Column({ type: 'text', default: 'nuevo' })
  estado_actual: EstadoLead;

  @Column({ type: 'text', nullable: true })
  url_presupuesto: string;

  @CreateDateColumn()
  created_at: Date;

  @UpdateDateColumn()
  updated_at: Date;
}
