feat: improve models
This commit is contained in:

committed by
Gitea

parent
61427987c2
commit
1a11b43ca8
@ -5,7 +5,7 @@ import type { IUser } from '@/modelTypes/IUser'
|
||||
import type { IFile } from '@/modelTypes/IFile'
|
||||
import type { IAttachment } from '@/modelTypes/IAttachment'
|
||||
|
||||
export default class AttachmentModel extends AbstractModel implements IAttachment {
|
||||
export default class AttachmentModel extends AbstractModel<IAttachment> implements IAttachment {
|
||||
id = 0
|
||||
taskId = 0
|
||||
createdBy: IUser = UserModel
|
||||
|
@ -1,7 +1,7 @@
|
||||
import AbstractModel from './abstractModel'
|
||||
import type { IAvatar } from '@/modelTypes/IAvatar'
|
||||
|
||||
export default class AvatarModel extends AbstractModel implements IAvatar {
|
||||
export default class AvatarModel extends AbstractModel<IAvatar> implements IAvatar {
|
||||
avatarProvider: IAvatar['avatarProvider'] = 'default'
|
||||
|
||||
constructor(data: Partial<IAvatar>) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import AbstractModel from './abstractModel'
|
||||
import type {IBackgroundImage} from '@/modelTypes/IBackgroundImage'
|
||||
|
||||
export default class BackgroundImageModel extends AbstractModel implements IBackgroundImage {
|
||||
export default class BackgroundImageModel extends AbstractModel<IBackgroundImage> implements IBackgroundImage {
|
||||
id = 0
|
||||
url = ''
|
||||
thumb = ''
|
||||
|
@ -6,14 +6,14 @@ import type {IBucket} from '@/modelTypes/IBucket'
|
||||
import type {ITask} from '@/modelTypes/ITask'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
export default class BucketModel extends AbstractModel implements IBucket {
|
||||
export default class BucketModel extends AbstractModel<IBucket> implements IBucket {
|
||||
id = 0
|
||||
title = ''
|
||||
listId = ''
|
||||
limit = 0
|
||||
tasks: ITask[] = []
|
||||
isDoneBucket: false
|
||||
position: 0
|
||||
isDoneBucket = false
|
||||
position = 0
|
||||
|
||||
createdBy: IUser = null
|
||||
created: Date = null
|
||||
|
@ -2,7 +2,7 @@ import AbstractModel from './abstractModel'
|
||||
|
||||
import type {ICaldavToken} from '@/modelTypes/ICaldavToken'
|
||||
|
||||
export default class CaldavTokenModel extends AbstractModel implements ICaldavToken {
|
||||
export default class CaldavTokenModel extends AbstractModel<ICaldavToken> implements ICaldavToken {
|
||||
id: number
|
||||
created: Date
|
||||
|
||||
|
@ -2,7 +2,7 @@ import AbstractModel from './abstractModel'
|
||||
|
||||
import type {IEmailUpdate} from '@/modelTypes/IEmailUpdate'
|
||||
|
||||
export default class EmailUpdateModel extends AbstractModel implements IEmailUpdate {
|
||||
export default class EmailUpdateModel extends AbstractModel<IEmailUpdate> implements IEmailUpdate {
|
||||
newEmail = ''
|
||||
password = ''
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import AbstractModel from './abstractModel'
|
||||
import type {IFile} from '@/modelTypes/IFile'
|
||||
|
||||
export default class FileModel extends AbstractModel implements IFile {
|
||||
export default class FileModel extends AbstractModel<IFile> implements IFile {
|
||||
id = 0
|
||||
mime = ''
|
||||
name = ''
|
||||
|
@ -8,7 +8,7 @@ import {colorIsDark} from '@/helpers/color/colorIsDark'
|
||||
|
||||
const DEFAULT_LABEL_BACKGROUND_COLOR = 'e8e8e8'
|
||||
|
||||
export default class LabelModel extends AbstractModel implements ILabel {
|
||||
export default class LabelModel extends AbstractModel<ILabel> implements ILabel {
|
||||
id = 0
|
||||
title = ''
|
||||
// FIXME: this should be empty and be definied in the client.
|
||||
|
@ -2,7 +2,7 @@ import AbstractModel from './abstractModel'
|
||||
|
||||
import type { ILabelTask } from '@/modelTypes/ILabelTask'
|
||||
|
||||
export default class LabelTask extends AbstractModel implements ILabelTask {
|
||||
export default class LabelTask extends AbstractModel<ILabelTask> implements ILabelTask {
|
||||
id = 0
|
||||
taskId = 0
|
||||
labelId = 0
|
||||
|
@ -5,7 +5,7 @@ import {RIGHTS, type Right} from '@/constants/rights'
|
||||
import type {ILinkShare} from '@/modelTypes/ILinkShare'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
export default class LinkShareModel extends AbstractModel implements ILinkShare {
|
||||
export default class LinkShareModel extends AbstractModel<ILinkShare> implements ILinkShare {
|
||||
id = 0
|
||||
hash = ''
|
||||
right: Right = RIGHTS.READ
|
||||
|
@ -11,7 +11,7 @@ import type {ISubscription} from '@/modelTypes/ISubscription'
|
||||
|
||||
import {getSavedFilterIdFromListId} from '@/helpers/savedFilter'
|
||||
|
||||
export default class ListModel extends AbstractModel implements IList {
|
||||
export default class ListModel extends AbstractModel<IList> implements IList {
|
||||
id = 0
|
||||
title = ''
|
||||
description = ''
|
||||
@ -30,7 +30,7 @@ export default class ListModel extends AbstractModel implements IList {
|
||||
created: Date = null
|
||||
updated: Date = null
|
||||
|
||||
constructor(data: Partial<IList>) {
|
||||
constructor(data: Partial<IList> = {}) {
|
||||
super()
|
||||
this.assignData(data)
|
||||
|
||||
|
@ -5,7 +5,7 @@ import type {IListDuplicate} from '@/modelTypes/IListDuplicate'
|
||||
import type {INamespace} from '@/modelTypes/INamespace'
|
||||
import type {IList} from '@/modelTypes/IList'
|
||||
|
||||
export default class ListDuplicateModel extends AbstractModel implements IListDuplicate {
|
||||
export default class ListDuplicateModel extends AbstractModel<IListDuplicate> implements IListDuplicate {
|
||||
listId = 0
|
||||
namespaceId: INamespace['id'] = 0
|
||||
list: IList = ListModel
|
||||
|
@ -8,7 +8,7 @@ import type {IUser} from '@/modelTypes/IUser'
|
||||
import type {IList} from '@/modelTypes/IList'
|
||||
import type {ISubscription} from '@/modelTypes/ISubscription'
|
||||
|
||||
export default class NamespaceModel extends AbstractModel implements INamespace {
|
||||
export default class NamespaceModel extends AbstractModel<INamespace> implements INamespace {
|
||||
id = 0
|
||||
title = ''
|
||||
description = ''
|
||||
@ -21,7 +21,7 @@ export default class NamespaceModel extends AbstractModel implements INamespace
|
||||
created: Date = null
|
||||
updated: Date = null
|
||||
|
||||
constructor(data: Partial<INamespace>) {
|
||||
constructor(data: Partial<INamespace> = {}) {
|
||||
super()
|
||||
this.assignData(data)
|
||||
|
||||
|
@ -8,7 +8,7 @@ import TeamModel from '@/models/team'
|
||||
|
||||
import {NOTIFICATION_NAMES, type INotification} from '@/modelTypes/INotification'
|
||||
|
||||
export default class NotificationModel extends AbstractModel implements INotification {
|
||||
export default class NotificationModel extends AbstractModel<INotification> implements INotification {
|
||||
id = 0
|
||||
name = ''
|
||||
notification: INotification['notification'] = null
|
||||
|
@ -2,7 +2,7 @@ import AbstractModel from './abstractModel'
|
||||
|
||||
import type {IPasswordReset} from '@/modelTypes/IPasswordReset'
|
||||
|
||||
export default class PasswordResetModel extends AbstractModel implements IPasswordReset {
|
||||
export default class PasswordResetModel extends AbstractModel<IPasswordReset> implements IPasswordReset {
|
||||
token = ''
|
||||
newPassword = ''
|
||||
email = ''
|
||||
|
@ -2,7 +2,7 @@ import AbstractModel from './abstractModel'
|
||||
|
||||
import type {IPasswordUpdate} from '@/modelTypes/IPasswordUpdate'
|
||||
|
||||
export default class PasswordUpdateModel extends AbstractModel implements IPasswordUpdate {
|
||||
export default class PasswordUpdateModel extends AbstractModel<IPasswordUpdate> implements IPasswordUpdate {
|
||||
newPassword = ''
|
||||
oldPassword = ''
|
||||
|
||||
|
@ -4,7 +4,7 @@ import UserModel from '@/models/user'
|
||||
import type {ISavedFilter} from '@/modelTypes/ISavedFilter'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
export default class SavedFilterModel extends AbstractModel implements ISavedFilter {
|
||||
export default class SavedFilterModel extends AbstractModel<ISavedFilter> implements ISavedFilter {
|
||||
id = 0
|
||||
title = ''
|
||||
description = ''
|
||||
|
@ -4,7 +4,7 @@ import UserModel from '@/models/user'
|
||||
import type {ISubscription} from '@/modelTypes/ISubscription'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
export default class SubscriptionModel extends AbstractModel implements ISubscription {
|
||||
export default class SubscriptionModel extends AbstractModel<ISubscription> implements ISubscription {
|
||||
id = 0
|
||||
entity = ''
|
||||
entityId = 0
|
||||
|
@ -32,7 +32,7 @@ export function getHexColor(hexColor: string) {
|
||||
return hexColor
|
||||
}
|
||||
|
||||
export default class TaskModel extends AbstractModel implements ITask {
|
||||
export default class TaskModel extends AbstractModel<ITask> implements ITask {
|
||||
id = 0
|
||||
title = ''
|
||||
description = ''
|
||||
|
@ -4,7 +4,7 @@ import type {ITaskAssignee} from '@/modelTypes/ITaskAssignee'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
import type {ITask} from '@/modelTypes/ITask'
|
||||
|
||||
export default class TaskAssigneeModel extends AbstractModel implements ITaskAssignee {
|
||||
export default class TaskAssigneeModel extends AbstractModel<ITaskAssignee> implements ITaskAssignee {
|
||||
created: Date = null
|
||||
userId: IUser['id'] = 0
|
||||
taskId: ITask['id'] = 0
|
||||
|
@ -5,7 +5,7 @@ import type {ITaskComment} from '@/modelTypes/ITaskComment'
|
||||
import type {ITask} from '@/modelTypes/ITask'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
export default class TaskCommentModel extends AbstractModel implements ITaskComment {
|
||||
export default class TaskCommentModel extends AbstractModel<ITaskComment> implements ITaskComment {
|
||||
id = 0
|
||||
taskId: ITask['id'] = 0
|
||||
comment = ''
|
||||
|
@ -6,7 +6,7 @@ import type {ITask} from '@/modelTypes/ITask'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
import type {IRelationKind} from '@/types/IRelationKind'
|
||||
export default class TaskRelationModel extends AbstractModel implements ITaskRelation {
|
||||
export default class TaskRelationModel extends AbstractModel<ITaskRelation> implements ITaskRelation {
|
||||
id = 0
|
||||
otherTaskId: ITask['id'] = 0
|
||||
taskId: ITask['id'] = 0
|
||||
|
@ -7,7 +7,7 @@ import type {ITeam} from '@/modelTypes/ITeam'
|
||||
import type {ITeamMember} from '@/modelTypes/ITeamMember'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
export default class TeamModel extends AbstractModel implements ITeam {
|
||||
export default class TeamModel extends AbstractModel<ITeam> implements ITeam {
|
||||
id = 0
|
||||
name = ''
|
||||
description = ''
|
||||
|
@ -8,7 +8,7 @@ import type {ITeam} from '@/modelTypes/ITeam'
|
||||
* This class is a base class for common team sharing model.
|
||||
* It is extended in a way so it can be used for namespaces as well for lists.
|
||||
*/
|
||||
export default class TeamShareBaseModel extends AbstractModel implements ITeamShareBase {
|
||||
export default class TeamShareBaseModel extends AbstractModel<ITeamShareBase> implements ITeamShareBase {
|
||||
teamId: ITeam['id'] = 0
|
||||
right: Right = RIGHTS.READ
|
||||
|
||||
|
@ -2,7 +2,7 @@ import AbstractModel from './abstractModel'
|
||||
|
||||
import type {ITotp} from '@/modelTypes/ITotp'
|
||||
|
||||
export default class TotpModel extends AbstractModel implements ITotp {
|
||||
export default class TotpModel extends AbstractModel<ITotp> implements ITotp {
|
||||
secret = ''
|
||||
enabled = false
|
||||
url = ''
|
||||
|
@ -4,7 +4,7 @@ import UserSettingsModel from '@/models/userSettings'
|
||||
import type { IUser } from '@/modelTypes/IUser'
|
||||
import type { IUserSettings } from '@/modelTypes/IUserSettings'
|
||||
|
||||
export default class UserModel extends AbstractModel implements IUser {
|
||||
export default class UserModel extends AbstractModel<IUser> implements IUser {
|
||||
id = 0
|
||||
email = ''
|
||||
username = ''
|
||||
|
@ -4,7 +4,7 @@ import AbstractModel from './abstractModel'
|
||||
import type {IUserSettings} from '@/modelTypes/IUserSettings'
|
||||
import type {IList} from '@/modelTypes/IList'
|
||||
|
||||
export default class UserSettingsModel extends AbstractModel implements IUserSettings {
|
||||
export default class UserSettingsModel extends AbstractModel<IUserSettings> implements IUserSettings {
|
||||
name = ''
|
||||
emailRemindersEnabled = true
|
||||
discoverableByName = false
|
||||
|
@ -4,7 +4,7 @@ import {RIGHTS, type Right} from '@/constants/rights'
|
||||
import type {IUserShareBase} from '@/modelTypes/IUserShareBase'
|
||||
import type {IUser} from '@/modelTypes/IUser'
|
||||
|
||||
export default class UserShareBaseModel extends AbstractModel implements IUserShareBase {
|
||||
export default class UserShareBaseModel extends AbstractModel<IUserShareBase> implements IUserShareBase {
|
||||
userId: IUser['id'] = ''
|
||||
right: Right = RIGHTS.READ
|
||||
|
||||
|
Reference in New Issue
Block a user