Fix-ish frontend models, a generator and a generate command

This commit is contained in:
Melody Becker 2024-11-20 16:11:11 +01:00
parent a6291fd098
commit a94a360773
14 changed files with 380 additions and 314 deletions

View file

@ -1,13 +1,13 @@
import Model, { attr, hasMany, type AsyncHasMany } from '@ember-data/model'
import type RemoteServerModel from './remote-server'
import type CustomAccountFieldModel from './custom-account-field'
import type MediaMetadataModel from './media-metadata'
import type OriginServer from './origin-server'
export default class AccountModel extends Model {
export default class Account extends Model {
@attr declare createdAt: Date
@attr declare updatedAt: Date
@attr declare username: string
@attr declare originServer: RemoteServerModel
@attr declare originServer: OriginServer
@attr declare originServerId: number
@attr declare displayName: string
@hasMany('custom-account-field')
@ -28,3 +28,9 @@ export default class AccountModel extends Model {
@attr declare pronouns: Array<string>
@attr declare roles: Array<string>
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
account: Account
}
}

View file

@ -1,6 +1,6 @@
import Model, { attr } from '@ember-data/model'
export default class CustomAccountFieldModel extends Model {
export default class CustomAccountField extends Model {
@attr declare createdAt: Date
@attr declare updatedAt: Date
@attr declare key: string
@ -8,3 +8,9 @@ export default class CustomAccountFieldModel extends Model {
@attr declare verified?: boolean
@attr declare belongsToId: string
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
customAccountField: CustomAccountField
}
}

View file

@ -1,11 +1,17 @@
import Model, { attr } from '@ember-data/model'
import type MediaMetadataModel from './media-metadata'
import type RemoteServerModel from './remote-server'
import type OriginServer from './origin-server'
export default class EmoteModel extends Model {
export default class Emote extends Model {
@attr declare metadataId: string
@attr declare metadata: MediaMetadataModel
@attr declare name: string
@attr declare serverId: number
@attr declare server: RemoteServerModel
@attr declare server: OriginServer
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
emote: Emote
}
}

View file

@ -1,6 +1,6 @@
import Model, { attr } from '@ember-data/model'
export default class MediaMetadataModel extends Model {
export default class MediaMetadata extends Model {
@attr declare createdAt: Date
@attr declare updatedAt: Date
@attr declare isRemote: boolean
@ -10,3 +10,9 @@ export default class MediaMetadataModel extends Model {
@attr declare altText: string
@attr declare blurred: boolean
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
mediaMetadata: MediaMetadata
}
}

View file

@ -1,11 +1,11 @@
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'
import type OriginServer from './origin-server'
export default class NoteModel extends Model {
export default class Note extends Model {
@attr declare content: string
@attr declare originServer: RemoteServerModel
@attr declare originServer: OriginServer
@attr declare originServerId: number
@attr declare reactionCount: number
@attr declare createdAt: Date
@ -24,3 +24,9 @@ export default class NoteModel extends Model {
@attr declare pingIds?: Array<string>
@attr declare reactionIds: Array<number>
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
note: Note
}
}

View file

@ -1,8 +1,14 @@
import Model, { attr } from '@ember-data/model'
export default class RemoteServerModel extends Model {
export default class OriginServer extends Model {
@attr() declare serverType: string
@attr() declare name: string
@attr() declare iconUrl: string
@attr() declare isSelf: boolean
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
originServer: OriginServer
}
}

View file

@ -1,9 +1,15 @@
import Model, { attr } from '@ember-data/model'
import type EmoteModel from './emote'
export default class ReactionModel extends Model {
export default class Reaction extends Model {
@attr declare noteId: string
@attr declare reactorId: string
@attr declare emoteId: number
@attr declare emote: EmoteModel
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
reaction: Reaction
}
}

View file

@ -1,6 +1,6 @@
import Model, { attr } from '@ember-data/model'
export default class RelationModel extends Model {
export default class Relation extends Model {
@attr declare createdAt: Date
@attr declare updatedAt: Date
@attr declare fromId: string
@ -8,3 +8,9 @@ export default class RelationModel extends Model {
@attr declare requested: boolean
@attr declare accepted: boolean
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
relation: Relation
}
}

View file

@ -2,7 +2,7 @@
// If you need to refresh the content, run go generate again
import Model, { attr } from '@ember-data/model';
export default class RoleModel extends Model {
export default class Role extends Model {
@attr() declare createdAt: Date
@attr() declare updatedAt: Date
@attr() declare name: string
@ -10,49 +10,55 @@ export default class RoleModel extends Model {
@attr() declare isUserRole: boolean
@attr() declare isBuiltIn: boolean
@attr() declare canSendMedia?: boolean
@attr() declare canSendFollowerOnlyNotes?: boolean
@attr() declare canIncludeLinks?: boolean
@attr() declare hasMentionCountLimit?: boolean
@attr() declare scanCreatedFollowerOnlyNotes?: boolean
@attr() declare canAffectOtherAdmins?: boolean
@attr() declare canConfirmWithheldNotes?: boolean
@attr() declare canSendCustomEmotes?: boolean
@attr() declare scanCreatedLocalNotes?: boolean
@attr() declare canOverwriteDisplayNames?: boolean
@attr() declare canRecoverDeletedNotes?: boolean
@attr() declare canManageAds?: boolean
@attr() declare canFederateBsky?: boolean
@attr() declare autoCwPostsText?: string
@attr() declare scanCreatedPublicNotes?: boolean
@attr() declare withholdNotesForManualApproval?: boolean
@attr() declare canSendReplies?: boolean
@attr() declare autoNsfwMedia?: boolean
@attr() declare canSendCustomReactions?: boolean
@attr() declare canSendLocalNotes?: boolean
@attr() declare canSendPrivateNotes?: boolean
@attr() declare canFederateFedi?: boolean
@attr() declare withholdNotesBasedOnRegex?: boolean
@attr() declare fullAdmin?: boolean
@attr() declare canSendAnnouncements?: boolean
@attr() declare canQuote?: boolean
@attr() declare canIncludeSurvey?: boolean
@attr() declare canChangeDisplayName?: boolean
@attr() declare blockedUsers?: Array<string>
@attr() declare canMentionOthers?: boolean
@attr() declare autoCwPosts?: boolean
@attr() declare canSendPublicNotes?: boolean
@attr() declare mentionLimit?: number
@attr() declare scanCreatedPrivateNotes?: boolean
@attr() declare autoCwPostsText?: string
@attr() declare withholdNotesRegexes?: Array<string>
@attr() declare canAssignRoles?: boolean
@attr() declare canSupressInteractionsBetweenUsers?: boolean
@attr() declare canSendCustomEmotes?: boolean
@attr() declare canOverwriteDisplayNames?: boolean
@attr() declare canManageCustomEmotes?: boolean
@attr() declare canViewDeletedNotes?: boolean
@attr() declare canBoost?: boolean
@attr() declare canSubmitReports?: boolean
@attr() declare canLogin?: boolean
@attr() declare disallowInteractionsWith?: Array<string>
@attr() declare canDeleteNotes?: boolean
@attr() declare canManageAvatarDecorations?: boolean
@attr() declare canManageAds?: boolean
@attr() declare blockedUsers?: Array<string>
@attr() declare hasMentionCountLimit?: boolean
@attr() declare disallowInteractionsWith?: Array<string>
@attr() declare withholdNotesBasedOnRegex?: boolean
@attr() declare fullAdmin?: boolean
@attr() declare canSendAnnouncements?: boolean
@attr() declare autoNsfwMedia?: boolean
@attr() declare scanCreatedPublicNotes?: boolean
@attr() declare scanCreatedPrivateNotes?: boolean
@attr() declare canSendFollowerOnlyNotes?: boolean
@attr() declare canSendPrivateNotes?: boolean
@attr() declare canIncludeSurvey?: boolean
@attr() declare canChangeDisplayName?: boolean
@attr() declare canLogin?: boolean
@attr() declare canAffectOtherAdmins?: boolean
@attr() declare autoCwPosts?: boolean
@attr() declare scanCreatedFollowerOnlyNotes?: boolean
@attr() declare canViewDeletedNotes?: boolean
@attr() declare mentionLimit?: number
@attr() declare withholdNotesForManualApproval?: boolean
@attr() declare canConfirmWithheldNotes?: boolean
@attr() declare canSendMedia?: boolean
@attr() declare canSendPublicNotes?: boolean
@attr() declare canSendReplies?: boolean
@attr() declare canQuote?: boolean
@attr() declare canIncludeLinks?: boolean
@attr() declare canRecoverDeletedNotes?: boolean
@attr() declare canMentionOthers?: boolean
@attr() declare scanCreatedLocalNotes?: boolean
@attr() declare canSendLocalNotes?: boolean
@attr() declare canBoost?: boolean
@attr() declare canFederateFedi?: boolean
@attr() declare canFederateBsky?: boolean
@attr() declare canSubmitReports?: boolean
}
declare module 'ember-data/types/registries/model' {
export default interface ModelRegistry {
role: Role
}
}