import Model, { attr, hasMany, type AsyncHasMany } from '@ember-data/model'; import type CustomAccountFieldModel from './custom-account-field'; import type MediaMetadataModel from './media-metadata'; import type OriginServer from './origin-server'; export default class Account extends Model { @attr declare createdAt: Date; @attr declare updatedAt: Date; @attr declare username: string; @attr declare originServer: OriginServer; @attr declare originServerId: number; @attr declare displayName: string; @hasMany('custom-account-field') declare customFields: AsyncHasMany; @attr declare customFieldIds: Array; @attr declare isBot: boolean; @attr declare description: string; @attr declare icon: MediaMetadataModel; @attr declare iconId: string; @attr declare banner: MediaMetadataModel; @attr declare bannerId: string; @attr declare background: MediaMetadataModel; @attr declare backgroundId: string; @attr declare relationIds: Array; @attr declare indexable: boolean; @attr declare restrictedFollow: boolean; @attr declare identifiesAs: Array; @attr declare pronouns: Array; @attr declare roles: Array; } declare module 'ember-data/types/registries/model' { export default interface ModelRegistry { account: Account; } }