diff options
| author | dakkar <dakkar@thenautilus.net> | 2024-12-12 13:04:51 +0000 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2024-12-12 13:04:51 +0000 |
| commit | 6d4ae935921ef1dcc5c908f216f6e8affc6e60c3 (patch) | |
| tree | 6c1f7724b63efa8f48f1c9e21f2789f9d9c000b2 /packages/backend/src/models/NoteSchedule.ts | |
| parent | fix(backend): アドレス入力で直接ユーザのプロフィールペー... (diff) | |
| parent | merge: Schedule Notes (!804) (diff) | |
| download | sharkey-6d4ae935921ef1dcc5c908f216f6e8affc6e60c3.tar.gz sharkey-6d4ae935921ef1dcc5c908f216f6e8affc6e60c3.tar.bz2 sharkey-6d4ae935921ef1dcc5c908f216f6e8affc6e60c3.zip | |
Merge branch 'develop' into feature/2024.10
Diffstat (limited to 'packages/backend/src/models/NoteSchedule.ts')
| -rw-r--r-- | packages/backend/src/models/NoteSchedule.ts | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/backend/src/models/NoteSchedule.ts b/packages/backend/src/models/NoteSchedule.ts new file mode 100644 index 0000000000..dde0af6ad7 --- /dev/null +++ b/packages/backend/src/models/NoteSchedule.ts @@ -0,0 +1,58 @@ +/* + * SPDX-FileCopyrightText: syuilo and other misskey contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Entity, Index, Column, PrimaryColumn } from 'typeorm'; +import { MiNote } from '@/models/Note.js'; +import { id } from './util/id.js'; +import { MiUser } from './User.js'; +import { MiChannel } from './Channel.js'; +import type { MiDriveFile } from './DriveFile.js'; + +type MinimumUser = { + id: MiUser['id']; + host: MiUser['host']; + username: MiUser['username']; + uri: MiUser['uri']; +}; + +export type MiScheduleNoteType={ + visibility: 'public' | 'home' | 'followers' | 'specified'; + visibleUsers: MinimumUser[]; + channel?: MiChannel['id']; + poll: { + multiple: boolean; + choices: string[]; + /** Date.toISOString() */ + expiresAt: string | null + } | undefined; + renote?: MiNote['id']; + localOnly: boolean; + cw?: string | null; + reactionAcceptance: 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote' | null; + files: MiDriveFile['id'][]; + text?: string | null; + reply?: MiNote['id']; + apMentions?: MinimumUser[] | null; + apHashtags?: string[] | null; + apEmojis?: string[] | null; +} + +@Entity('note_schedule') +export class MiNoteSchedule { + @PrimaryColumn(id()) + public id: string; + + @Column('jsonb') + public note: MiScheduleNoteType; + + @Index() + @Column('varchar', { + length: 260, + }) + public userId: MiUser['id']; + + @Column('timestamp with time zone') + public scheduledAt: Date; +} |