forked from mirrors/firefish
88 lines
1.3 KiB
TypeScript
88 lines
1.3 KiB
TypeScript
import { Entity, PrimaryColumn, Index, Column } from "typeorm";
|
|
import type { User } from "./user.js";
|
|
import { id } from "../id.js";
|
|
|
|
@Entity()
|
|
export class Hashtag {
|
|
@PrimaryColumn(id())
|
|
public id: string;
|
|
|
|
@Index({ unique: true })
|
|
@Column('varchar', {
|
|
length: 128,
|
|
})
|
|
public name: string;
|
|
|
|
@Column({
|
|
...id(),
|
|
array: true,
|
|
})
|
|
public mentionedUserIds: User["id"][];
|
|
|
|
@Index()
|
|
@Column('integer', {
|
|
default: 0,
|
|
})
|
|
public mentionedUsersCount: number;
|
|
|
|
@Column({
|
|
...id(),
|
|
array: true,
|
|
})
|
|
public mentionedLocalUserIds: User["id"][];
|
|
|
|
@Index()
|
|
@Column('integer', {
|
|
default: 0,
|
|
})
|
|
public mentionedLocalUsersCount: number;
|
|
|
|
@Column({
|
|
...id(),
|
|
array: true,
|
|
})
|
|
public mentionedRemoteUserIds: User["id"][];
|
|
|
|
@Index()
|
|
@Column('integer', {
|
|
default: 0,
|
|
})
|
|
public mentionedRemoteUsersCount: number;
|
|
|
|
@Column({
|
|
...id(),
|
|
array: true,
|
|
})
|
|
public attachedUserIds: User["id"][];
|
|
|
|
@Index()
|
|
@Column('integer', {
|
|
default: 0,
|
|
})
|
|
public attachedUsersCount: number;
|
|
|
|
@Column({
|
|
...id(),
|
|
array: true,
|
|
})
|
|
public attachedLocalUserIds: User["id"][];
|
|
|
|
@Index()
|
|
@Column('integer', {
|
|
default: 0,
|
|
})
|
|
public attachedLocalUsersCount: number;
|
|
|
|
@Column({
|
|
...id(),
|
|
array: true,
|
|
})
|
|
public attachedRemoteUserIds: User["id"][];
|
|
|
|
@Index()
|
|
@Column('integer', {
|
|
default: 0,
|
|
})
|
|
public attachedRemoteUsersCount: number;
|
|
}
|