| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 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
- }
- }
|