const { knex } = require("../config/db.config"); const { Model } = require("objection"); Model.knex(knex); const unique = require("objection-unique")({ fields: ["id"], identifiers: ["id"], }); class Ramais extends unique(Model) { static get tableName() { return "ramais"; } static get idColumn() { return "id"; } static get relationMappings() { const { RamalFranquias } = require("./RamalFranquias.model"); const { Franquia } = require("./Franquia.model"); const { Did } = require("./Did.model"); return { did: { relation: Model.HasManyRelation, modelClass: Did, join: { from: "did.id_ramal", to: "ramais.id", }, }, franquia: { relation: Model.ManyToManyRelation, modelClass: Franquia, join: { from: "fraquias.id_planos", through: { from: 'planos.id', to: 'planos.id' }, to: "ramais.id_planos", }, }, ramais_franquias: { relation: Model.HasManyRelation, modelClass: RamalFranquias, join: { from: "ramais.id", to: "ramais_franquias.id_ramais", on: (builder) => { builder.andOn( "ramais.id_planos", "=", "ramais_franquias.id_planos" ); }, modify: (query) => { query.select( "franquias.nome as nome_franquia", "ramais_franquias.franquia_segundos as segundos_disponiveis", "franquias.franquia_minutos as total_minutos_franquia", Ramal.raw("IF(franquias.LC = 1, 'LC', '') as LC"), Ramal.raw("IF(franquias.LDN = 1, 'LDN', '') as LDN"), Ramal.raw("IF(franquias.VC1 = 1, 'VC1', '') as VC1"), Ramal.raw("IF(franquias.VC2 = 1, 'VC2', '') as VC2"), Ramal.raw("IF(franquias.VC3 = 1, 'VC3', '') as VC3") ); }, }, }, }; } } module.exports.Ramais = Ramais;