wip
This commit is contained in:
parent
97312b97f8
commit
5eb873ff91
|
|
@ -24,6 +24,7 @@ export const DI = {
|
||||||
noteFavoritesRepository: Symbol('noteFavoritesRepository'),
|
noteFavoritesRepository: Symbol('noteFavoritesRepository'),
|
||||||
noteThreadMutingsRepository: Symbol('noteThreadMutingsRepository'),
|
noteThreadMutingsRepository: Symbol('noteThreadMutingsRepository'),
|
||||||
noteReactionsRepository: Symbol('noteReactionsRepository'),
|
noteReactionsRepository: Symbol('noteReactionsRepository'),
|
||||||
|
noteSpReactionsRepository: Symbol('noteSpReactionsRepository'),
|
||||||
pollsRepository: Symbol('pollsRepository'),
|
pollsRepository: Symbol('pollsRepository'),
|
||||||
pollVotesRepository: Symbol('pollVotesRepository'),
|
pollVotesRepository: Symbol('pollVotesRepository'),
|
||||||
userProfilesRepository: Symbol('userProfilesRepository'),
|
userProfilesRepository: Symbol('userProfilesRepository'),
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||||
|
import { id } from './util/id.js';
|
||||||
|
import { MiUser } from './User.js';
|
||||||
|
import { MiNote } from './Note.js';
|
||||||
|
|
||||||
|
@Entity('note_sp_reaction')
|
||||||
|
@Index(['userId', 'noteId'], { unique: true })
|
||||||
|
export class MiNoteSpReaction {
|
||||||
|
@PrimaryColumn(id())
|
||||||
|
public id: string;
|
||||||
|
|
||||||
|
@Index()
|
||||||
|
@Column(id())
|
||||||
|
public userId: MiUser['id'];
|
||||||
|
|
||||||
|
@ManyToOne(() => MiUser, {
|
||||||
|
onDelete: 'CASCADE',
|
||||||
|
})
|
||||||
|
@JoinColumn()
|
||||||
|
public user?: MiUser | null;
|
||||||
|
|
||||||
|
@Index()
|
||||||
|
@Column(id())
|
||||||
|
public noteId: MiNote['id'];
|
||||||
|
|
||||||
|
@ManyToOne(() => MiNote, {
|
||||||
|
onDelete: 'CASCADE',
|
||||||
|
})
|
||||||
|
@JoinColumn()
|
||||||
|
public note?: MiNote | null;
|
||||||
|
|
||||||
|
@Column('varchar', {
|
||||||
|
length: 260,
|
||||||
|
})
|
||||||
|
public reaction: string;
|
||||||
|
|
||||||
|
//#region Denormalized fields
|
||||||
|
@Index()
|
||||||
|
@Column({
|
||||||
|
...id(),
|
||||||
|
comment: '[Denormalized]',
|
||||||
|
})
|
||||||
|
public noteUserId: MiUser['id'];
|
||||||
|
//#endregion
|
||||||
|
}
|
||||||
|
|
@ -42,6 +42,7 @@ import {
|
||||||
MiNote,
|
MiNote,
|
||||||
MiNoteFavorite,
|
MiNoteFavorite,
|
||||||
MiNoteReaction,
|
MiNoteReaction,
|
||||||
|
MiNoteSpReaction,
|
||||||
MiNoteThreadMuting,
|
MiNoteThreadMuting,
|
||||||
MiNoteDraft,
|
MiNoteDraft,
|
||||||
MiPage,
|
MiPage,
|
||||||
|
|
@ -142,6 +143,12 @@ const $noteReactionsRepository: Provider = {
|
||||||
inject: [DI.db],
|
inject: [DI.db],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const $noteSpReactionsRepository: Provider = {
|
||||||
|
provide: DI.noteSpReactionsRepository,
|
||||||
|
useFactory: (db: DataSource) => db.getRepository(MiNoteSpReaction).extend(miRepository as MiRepository<MiNoteSpReaction>),
|
||||||
|
inject: [DI.db],
|
||||||
|
};
|
||||||
|
|
||||||
const $noteDraftsRepository: Provider = {
|
const $noteDraftsRepository: Provider = {
|
||||||
provide: DI.noteDraftsRepository,
|
provide: DI.noteDraftsRepository,
|
||||||
useFactory: (db: DataSource) => db.getRepository(MiNoteDraft).extend(miRepository as MiRepository<MiNoteDraft>),
|
useFactory: (db: DataSource) => db.getRepository(MiNoteDraft).extend(miRepository as MiRepository<MiNoteDraft>),
|
||||||
|
|
@ -556,6 +563,7 @@ const $reversiGamesRepository: Provider = {
|
||||||
$noteFavoritesRepository,
|
$noteFavoritesRepository,
|
||||||
$noteThreadMutingsRepository,
|
$noteThreadMutingsRepository,
|
||||||
$noteReactionsRepository,
|
$noteReactionsRepository,
|
||||||
|
$noteSpReactionsRepository,
|
||||||
$noteDraftsRepository,
|
$noteDraftsRepository,
|
||||||
$pollsRepository,
|
$pollsRepository,
|
||||||
$pollVotesRepository,
|
$pollVotesRepository,
|
||||||
|
|
@ -634,6 +642,7 @@ const $reversiGamesRepository: Provider = {
|
||||||
$noteFavoritesRepository,
|
$noteFavoritesRepository,
|
||||||
$noteThreadMutingsRepository,
|
$noteThreadMutingsRepository,
|
||||||
$noteReactionsRepository,
|
$noteReactionsRepository,
|
||||||
|
$noteSpReactionsRepository,
|
||||||
$noteDraftsRepository,
|
$noteDraftsRepository,
|
||||||
$pollsRepository,
|
$pollsRepository,
|
||||||
$pollVotesRepository,
|
$pollVotesRepository,
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import { MiBubbleGameRecord } from '@/models/BubbleGameRecord.js';
|
||||||
import { MiChannel } from '@/models/Channel.js';
|
import { MiChannel } from '@/models/Channel.js';
|
||||||
import { MiChannelFavorite } from '@/models/ChannelFavorite.js';
|
import { MiChannelFavorite } from '@/models/ChannelFavorite.js';
|
||||||
import { MiChannelFollowing } from '@/models/ChannelFollowing.js';
|
import { MiChannelFollowing } from '@/models/ChannelFollowing.js';
|
||||||
import { MiChannelMuting } from "@/models/ChannelMuting.js";
|
import { MiChannelMuting } from '@/models/ChannelMuting.js';
|
||||||
import { MiChatApproval } from '@/models/ChatApproval.js';
|
import { MiChatApproval } from '@/models/ChatApproval.js';
|
||||||
import { MiChatMessage } from '@/models/ChatMessage.js';
|
import { MiChatMessage } from '@/models/ChatMessage.js';
|
||||||
import { MiChatRoom } from '@/models/ChatRoom.js';
|
import { MiChatRoom } from '@/models/ChatRoom.js';
|
||||||
|
|
@ -50,6 +50,7 @@ import { MiNote } from '@/models/Note.js';
|
||||||
import { MiNoteDraft } from '@/models/NoteDraft.js';
|
import { MiNoteDraft } from '@/models/NoteDraft.js';
|
||||||
import { MiNoteFavorite } from '@/models/NoteFavorite.js';
|
import { MiNoteFavorite } from '@/models/NoteFavorite.js';
|
||||||
import { MiNoteReaction } from '@/models/NoteReaction.js';
|
import { MiNoteReaction } from '@/models/NoteReaction.js';
|
||||||
|
import { MiNoteSpReaction } from '@/models/NoteSpReaction.js';
|
||||||
import { MiNoteThreadMuting } from '@/models/NoteThreadMuting.js';
|
import { MiNoteThreadMuting } from '@/models/NoteThreadMuting.js';
|
||||||
import { MiPage } from '@/models/Page.js';
|
import { MiPage } from '@/models/Page.js';
|
||||||
import { MiPageLike } from '@/models/PageLike.js';
|
import { MiPageLike } from '@/models/PageLike.js';
|
||||||
|
|
@ -131,6 +132,7 @@ export {
|
||||||
MiNoteDraft,
|
MiNoteDraft,
|
||||||
MiNoteFavorite,
|
MiNoteFavorite,
|
||||||
MiNoteReaction,
|
MiNoteReaction,
|
||||||
|
MiNoteSpReaction,
|
||||||
MiNoteThreadMuting,
|
MiNoteThreadMuting,
|
||||||
MiPage,
|
MiPage,
|
||||||
MiPageLike,
|
MiPageLike,
|
||||||
|
|
@ -211,6 +213,7 @@ export type NotesRepository = Repository<MiNote> & MiRepository<MiNote>;
|
||||||
export type NoteDraftsRepository = Repository<MiNoteDraft> & MiRepository<MiNoteDraft>;
|
export type NoteDraftsRepository = Repository<MiNoteDraft> & MiRepository<MiNoteDraft>;
|
||||||
export type NoteFavoritesRepository = Repository<MiNoteFavorite> & MiRepository<MiNoteFavorite>;
|
export type NoteFavoritesRepository = Repository<MiNoteFavorite> & MiRepository<MiNoteFavorite>;
|
||||||
export type NoteReactionsRepository = Repository<MiNoteReaction> & MiRepository<MiNoteReaction>;
|
export type NoteReactionsRepository = Repository<MiNoteReaction> & MiRepository<MiNoteReaction>;
|
||||||
|
export type NoteSpReactionsRepository = Repository<MiNoteSpReaction> & MiRepository<MiNoteSpReaction>;
|
||||||
export type NoteThreadMutingsRepository = Repository<MiNoteThreadMuting> & MiRepository<MiNoteThreadMuting>;
|
export type NoteThreadMutingsRepository = Repository<MiNoteThreadMuting> & MiRepository<MiNoteThreadMuting>;
|
||||||
export type PagesRepository = Repository<MiPage> & MiRepository<MiPage>;
|
export type PagesRepository = Repository<MiPage> & MiRepository<MiPage>;
|
||||||
export type PageLikesRepository = Repository<MiPageLike> & MiRepository<MiPageLike>;
|
export type PageLikesRepository = Repository<MiPageLike> & MiRepository<MiPageLike>;
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ import { MiRenoteMuting } from '@/models/RenoteMuting.js';
|
||||||
import { MiNote } from '@/models/Note.js';
|
import { MiNote } from '@/models/Note.js';
|
||||||
import { MiNoteFavorite } from '@/models/NoteFavorite.js';
|
import { MiNoteFavorite } from '@/models/NoteFavorite.js';
|
||||||
import { MiNoteReaction } from '@/models/NoteReaction.js';
|
import { MiNoteReaction } from '@/models/NoteReaction.js';
|
||||||
|
import { MiNoteSpReaction } from '@/models/NoteSpReaction.js';
|
||||||
import { MiNoteThreadMuting } from '@/models/NoteThreadMuting.js';
|
import { MiNoteThreadMuting } from '@/models/NoteThreadMuting.js';
|
||||||
import { MiNoteDraft } from '@/models/NoteDraft.js';
|
import { MiNoteDraft } from '@/models/NoteDraft.js';
|
||||||
import { MiPage } from '@/models/Page.js';
|
import { MiPage } from '@/models/Page.js';
|
||||||
|
|
@ -204,6 +205,7 @@ export const entities = [
|
||||||
MiNote,
|
MiNote,
|
||||||
MiNoteFavorite,
|
MiNoteFavorite,
|
||||||
MiNoteReaction,
|
MiNoteReaction,
|
||||||
|
MiNoteSpReaction,
|
||||||
MiNoteThreadMuting,
|
MiNoteThreadMuting,
|
||||||
MiNoteDraft,
|
MiNoteDraft,
|
||||||
MiPage,
|
MiPage,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue