import { SocialMediaPlatformEnum } from 'common/enum/social-media-platform.enum';
import { Column, Entity, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn } from 'typeorm';

@Entity('scheduled_post')
export class ScheduledPostEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ nullable: false, name: 'alert_id' })
  alertId: number;

  @Column({ type: 'enum', enum: SocialMediaPlatformEnum, nullable: false })
  platform: SocialMediaPlatformEnum;

  @Column({ type: 'text', nullable: false })
  content: string;

  @Column({ type: 'text', nullable: true, name: 'poster_url' })
  posterUrl: string;

  @CreateDateColumn({ name: 'scheduled_time' })
  scheduledTime: Date;

  @Column({
    type: 'enum',
    enum: ['pending', 'published', 'failed'],
    default: 'pending',
  })
  status: 'pending' | 'published' | 'failed';

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

  @CreateDateColumn({ name: 'created_at' })
  createdAt: Date;

  @UpdateDateColumn({ name: 'updated_at' })
  updatedAt: Date;
}
