const Schwifty = require('@hapipal/schwifty') const profileSchema = require('../schemas/profile') const TagAssociationModel = require('./tag-association') const ResponseModel = require('./response') const UserModel = require('./user') module.exports = class Profile extends Schwifty.Model { static get tableName() { return 'profiles' } static get relationMappings() { return { tags: { relation: Schwifty.Model.HasManyRelation, modelClass: TagAssociationModel, join: { from: 'tag_associations.profile_id', to: 'profiles.profile_id', }, }, responses: { relation: Schwifty.Model.HasManyRelation, modelClass: ResponseModel, join: { from: 'responses.profile_id', to: 'profiles.profile_id', }, }, user: { relation: Schwifty.Model.BelongsToOneRelation, modelClass: UserModel, join: { from: 'users.user_id', to: 'profiles.user_id', }, }, } } static get joiSchema() { return profileSchema.single } }