import { PromptType } from 'src/common/enums';
import { Image } from 'src/modules/images/entities/image.entity';
import { User } from 'src/modules/users/entities/user.entity';
import { Video } from 'src/modules/videos/entities/video.entity';
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, OneToMany } from 'typeorm';

@Entity('prompts')
export class Prompt {
  @PrimaryGeneratedColumn()
  id: number;

  @ManyToOne(() => User, (user) => user.prompts, { nullable: false })
  user: User;

  @Column('text')
  input_text: string;

  @Column('text', { nullable: true })
  full_prompt: string;

  @Column({ type: 'enum', enum: PromptType })
  type: PromptType;

  @OneToMany(() => Image, (image) => image.prompt)
  images: Image[];

  @OneToMany(() => Video, (video) => video.prompt)
  videos: Video[];

  @CreateDateColumn()
  created_at: Date;
}