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' }, }, }; } }