86 lines
1.9 KiB
TypeScript
86 lines
1.9 KiB
TypeScript
import { Model } from 'objection';
|
|
|
|
/**
|
|
* Simplified User model for use in dynamic object relations
|
|
* This version doesn't include complex relationMappings to avoid modelPath issues
|
|
*/
|
|
export class UserModel extends Model {
|
|
static tableName = 'users';
|
|
static objectApiName = 'User';
|
|
|
|
id!: string;
|
|
email!: string;
|
|
firstName?: string;
|
|
lastName?: string;
|
|
name?: string;
|
|
isActive!: boolean;
|
|
createdAt!: Date;
|
|
updatedAt!: Date;
|
|
|
|
static get jsonSchema() {
|
|
return {
|
|
type: 'object',
|
|
required: ['email'],
|
|
properties: {
|
|
id: { type: 'string' },
|
|
email: { type: 'string', format: 'email' },
|
|
firstName: { type: 'string' },
|
|
lastName: { type: 'string' },
|
|
name: { type: 'string' },
|
|
isActive: { type: 'boolean' },
|
|
},
|
|
};
|
|
}
|
|
|
|
// No relationMappings to avoid modelPath resolution issues
|
|
// These simplified models are only used for lookup relations from dynamic models
|
|
}
|
|
|
|
/**
|
|
* Simplified Role model for use in dynamic object relations
|
|
*/
|
|
export class RoleModel extends Model {
|
|
static tableName = 'roles';
|
|
static objectApiName = 'Role';
|
|
|
|
id!: string;
|
|
name!: string;
|
|
description?: string;
|
|
|
|
static get jsonSchema() {
|
|
return {
|
|
type: 'object',
|
|
required: ['name'],
|
|
properties: {
|
|
id: { type: 'string' },
|
|
name: { type: 'string' },
|
|
description: { type: 'string' },
|
|
},
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Simplified Permission model for use in dynamic object relations
|
|
*/
|
|
export class PermissionModel extends Model {
|
|
static tableName = 'permissions';
|
|
static objectApiName = 'Permission';
|
|
|
|
id!: string;
|
|
name!: string;
|
|
description?: string;
|
|
|
|
static get jsonSchema() {
|
|
return {
|
|
type: 'object',
|
|
required: ['name'],
|
|
properties: {
|
|
id: { type: 'string' },
|
|
name: { type: 'string' },
|
|
description: { type: 'string' },
|
|
},
|
|
};
|
|
}
|
|
}
|