iceshrimp/packages/backend/src/models/entities/emoji.ts
2023-05-19 22:26:13 -04:00

74 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: 128, 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;
}