import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn } from "typeorm";

@Entity("media_assets")
export class MediaAsset {
  @PrimaryGeneratedColumn("uuid")
  id!: string;

  // Name on disk under ./uploads (randomised, see upload.config.ts) —
  // kept separately from originalName so deletion can find the file.
  @Column({ name: "file_name" })
  fileName!: string;

  // Display name shown in the library — editable independently of fileName
  // (the real name on disk), so renaming it doesn't touch the file or any
  // page already referencing this asset's url.
  @Column({ name: "original_name" })
  originalName!: string;

  @Column({ name: "alt_text", type: "varchar", length: 255, nullable: true })
  altText!: string | null;

  @Column({ length: 500 })
  url!: string;

  @Column({ name: "mime_type", length: 100 })
  mimeType!: string;

  @Column({ name: "size_bytes" })
  sizeBytes!: number;

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