summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-10-31 15:30:22 +0900
committerGitHub <noreply@github.com>2021-10-31 15:30:22 +0900
commitfc65190ef7b687650018cccfee2219bf00827f70 (patch)
treed2482c79dd095509b8b57dac28db460fb812196a /src/models
parentfix: Fix #7895 (#7937) (diff)
downloadsharkey-fc65190ef7b687650018cccfee2219bf00827f70.tar.gz
sharkey-fc65190ef7b687650018cccfee2219bf00827f70.tar.bz2
sharkey-fc65190ef7b687650018cccfee2219bf00827f70.zip
feat: thread mute (#7930)
* feat: thread mute * chore: fix comment * fix test * fix * refactor
Diffstat (limited to 'src/models')
-rw-r--r--src/models/entities/note-thread-muting.ts33
-rw-r--r--src/models/entities/note.ts6
-rw-r--r--src/models/index.ts2
3 files changed, 41 insertions, 0 deletions
diff --git a/src/models/entities/note-thread-muting.ts b/src/models/entities/note-thread-muting.ts
new file mode 100644
index 0000000000..b438522a4c
--- /dev/null
+++ b/src/models/entities/note-thread-muting.ts
@@ -0,0 +1,33 @@
+import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
+import { User } from './user';
+import { Note } from './note';
+import { id } from '../id';
+
+@Entity()
+@Index(['userId', 'threadId'], { unique: true })
+export class NoteThreadMuting {
+ @PrimaryColumn(id())
+ public id: string;
+
+ @Column('timestamp with time zone', {
+ })
+ public createdAt: Date;
+
+ @Index()
+ @Column({
+ ...id(),
+ })
+ public userId: User['id'];
+
+ @ManyToOne(type => User, {
+ onDelete: 'CASCADE'
+ })
+ @JoinColumn()
+ public user: User | null;
+
+ @Index()
+ @Column('varchar', {
+ length: 256,
+ })
+ public threadId: string;
+}
diff --git a/src/models/entities/note.ts b/src/models/entities/note.ts
index 9a85532637..4a5411f93d 100644
--- a/src/models/entities/note.ts
+++ b/src/models/entities/note.ts
@@ -47,6 +47,12 @@ export class Note {
@JoinColumn()
public renote: Note | null;
+ @Index()
+ @Column('varchar', {
+ length: 256, nullable: true
+ })
+ public threadId: string | null;
+
@Column('varchar', {
length: 8192, nullable: true
})
diff --git a/src/models/index.ts b/src/models/index.ts
index 4c6f19eaff..7154cca550 100644
--- a/src/models/index.ts
+++ b/src/models/index.ts
@@ -7,6 +7,7 @@ import { PollVote } from './entities/poll-vote';
import { Meta } from './entities/meta';
import { SwSubscription } from './entities/sw-subscription';
import { NoteWatching } from './entities/note-watching';
+import { NoteThreadMuting } from './entities/note-thread-muting';
import { NoteUnread } from './entities/note-unread';
import { RegistrationTicket } from './entities/registration-tickets';
import { UserRepository } from './repositories/user';
@@ -69,6 +70,7 @@ export const Apps = getCustomRepository(AppRepository);
export const Notes = getCustomRepository(NoteRepository);
export const NoteFavorites = getCustomRepository(NoteFavoriteRepository);
export const NoteWatchings = getRepository(NoteWatching);
+export const NoteThreadMutings = getRepository(NoteThreadMuting);
export const NoteReactions = getCustomRepository(NoteReactionRepository);
export const NoteUnreads = getRepository(NoteUnread);
export const Polls = getRepository(Poll);