diff --git a/frontend/src/modelTypes/IAdminOverview.ts b/frontend/src/modelTypes/IAdminOverview.ts new file mode 100644 index 000000000..02202cbe6 --- /dev/null +++ b/frontend/src/modelTypes/IAdminOverview.ts @@ -0,0 +1,26 @@ +import type {IAbstract} from './IAbstract' + +export interface IAdminOverviewShares { + linkShares: number + teamShares: number + userShares: number +} + +export interface IAdminOverviewLicense { + licensed: boolean + instanceId: string + features: string[] + maxUsers: number + expiresAt: Date + validatedAt: Date + lastCheckFailed: boolean +} + +export interface IAdminOverview extends IAbstract { + users: number + projects: number + tasks: number + teams: number + shares: IAdminOverviewShares + license: IAdminOverviewLicense +} diff --git a/frontend/src/modelTypes/IAdminUser.ts b/frontend/src/modelTypes/IAdminUser.ts new file mode 100644 index 000000000..74475e6af --- /dev/null +++ b/frontend/src/modelTypes/IAdminUser.ts @@ -0,0 +1,9 @@ +import type {IUser} from './IUser' + +export interface IAdminUser extends IUser { + status: number + isAdmin: boolean + issuer: string + subject?: string + authProvider?: string +} diff --git a/frontend/src/models/adminOverview.ts b/frontend/src/models/adminOverview.ts new file mode 100644 index 000000000..7a3c8f7ef --- /dev/null +++ b/frontend/src/models/adminOverview.ts @@ -0,0 +1,31 @@ +import AbstractModel from './abstractModel' +import type {IAdminOverview, IAdminOverviewLicense, IAdminOverviewShares} from '@/modelTypes/IAdminOverview' + +export default class AdminOverviewModel extends AbstractModel implements IAdminOverview { + users = 0 + projects = 0 + tasks = 0 + teams = 0 + shares: IAdminOverviewShares = { + linkShares: 0, + teamShares: 0, + userShares: 0, + } + license: IAdminOverviewLicense = { + licensed: false, + instanceId: '', + features: [], + maxUsers: 0, + expiresAt: new Date(0), + validatedAt: new Date(0), + lastCheckFailed: false, + } + + constructor(data: Partial = {}) { + super() + this.assignData(data) + + this.license.expiresAt = new Date(this.license.expiresAt) + this.license.validatedAt = new Date(this.license.validatedAt) + } +} diff --git a/frontend/src/models/adminUser.ts b/frontend/src/models/adminUser.ts new file mode 100644 index 000000000..c993252ac --- /dev/null +++ b/frontend/src/models/adminUser.ts @@ -0,0 +1,14 @@ +import UserModel from '@/models/user' +import type {IAdminUser} from '@/modelTypes/IAdminUser' + +export default class AdminUserModel extends UserModel implements IAdminUser { + declare status: number + declare isAdmin: boolean + declare issuer: string + declare subject?: string + declare authProvider?: string + + constructor(data: Partial = {}) { + super(data) + } +}