import { PrimaryColumn, Entity, Index, Column } from "typeorm";
import { id } from "../id.js";

@Entity()
@Index(["name", "host"], { unique: true })
export class Emoji {
	@PrimaryColumn(id())
	public id: string;

	@Column("timestamp with time zone", {
		nullable: true,
	})
	public updatedAt: Date | null;

	@Index()
	@Column("varchar", {
		length: 128,
	})
	public name: string;

	@Index()
	@Column("varchar", {
		length: 512,
		nullable: true,
	})
	public host: string | null;

	@Column("varchar", {
		length: 128,
		nullable: true,
	})
	public category: string | null;

	@Column("varchar", {
		length: 512,
	})
	public originalUrl: string;

	@Column("varchar", {
		length: 512,
		default: "",
	})
	public publicUrl: string;

	@Column("varchar", {
		length: 512,
		nullable: true,
	})
	public uri: string | null;

	// publicUrlの方のtypeが入る
	// (mime)
	@Column("varchar", {
		length: 64,
		nullable: true,
	})
	public type: string | null;

	@Column("varchar", {
		array: true,
		length: 128,
		default: "{}",
	})
	public aliases: string[];

	@Column("varchar", {
		length: 1024,
		nullable: true,
	})
	public license: string | null;

	@Column("integer", {
		nullable: true,
		comment: "Image width",
	})
	public width: number | null;

	@Column("integer", {
		nullable: true,
		comment: "Image height",
	})
	public height: number | null;
}
