import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne } from 'typeorm';
import { User } from '../../users/entities/user.entity';
import { Character } from '../../characters/entities/character.entity';
import { ImageType } from '../../../common/enums';
import { Prompt } from 'src/modules/prompts/entities/prompt.entity';

@Entity('images')
export class Image {
  @PrimaryGeneratedColumn()
  id: number;

  @ManyToOne(() => User, (user) => user.images, { nullable: false })
  user: User;

  @ManyToOne(() => Prompt, (prompt) => prompt.images, { nullable: true })
  prompt: Prompt;

  @ManyToOne(() => Character, (character) => character.images, { nullable: true })
  character: Character;

  @Column()
  image_url: string;

  @Column({ type: 'enum', enum: ImageType })
  type: ImageType;

  @CreateDateColumn()
  created_at: Date;
}
