linstrom/frontend-reactive/app/models/note.ts

27 lines
1 KiB
TypeScript
Raw Normal View History

2024-11-20 14:39:24 +00:00
import Model, { attr, hasMany, type AsyncHasMany } from '@ember-data/model'
import type RemoteServerModel from './remote-server'
import type AccountModel from './account'
import type MediaMetadataModel from './media-metadata'
export default class NoteModel extends Model {
@attr declare content: string
@attr declare originServer: RemoteServerModel
@attr declare originServerId: number
@attr declare reactionCount: number
@attr declare createdAt: Date
@attr declare updatedAt: Date
@attr declare author: AccountModel
@attr declare authorId: string
@attr declare contentWarning?: string
@attr declare inReplyToId?: string
@attr declare quotesId?: string
@attr declare emoteIds?: Array<string>
@hasMany('media-metadata')
declare attachments: AsyncHasMany<MediaMetadataModel>
@attr declare attachmentIds: Array<string>
@attr declare accessLevel: number
@hasMany('account') declare pings?: AsyncHasMany<AccountModel>
@attr declare pingIds?: Array<string>
@attr declare reactionIds: Array<number>
}