| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- 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;
|