iceshrimp/packages/backend/src/models/entities/emoji.ts

84 lines
1.3 KiB
TypeScript

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;
}