|
|
@@ -1,6 +1,6 @@
|
|
|
const { knex } = require("../config/db.config");
|
|
|
|
|
|
-const { Model } = require("objection");
|
|
|
+const { Model, raw } = require("objection");
|
|
|
Model.knex(knex);
|
|
|
|
|
|
const unique = require("objection-unique")({
|
|
|
@@ -17,6 +17,7 @@ class Ramais extends unique(Model) {
|
|
|
return "id";
|
|
|
}
|
|
|
static get relationMappings() {
|
|
|
+ const { Devices } = require("./Devices.model");
|
|
|
const { RamalFranquias } = require("./RamalFranquias.model");
|
|
|
const { Franquia } = require("./Franquia.model");
|
|
|
const { Did } = require("./Did.model");
|
|
|
@@ -27,7 +28,18 @@ class Ramais extends unique(Model) {
|
|
|
join: {
|
|
|
from: "did.id_ramal",
|
|
|
to: "ramais.id",
|
|
|
- }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ devices: {
|
|
|
+ relation: Model.HasOneRelation,
|
|
|
+ modelClass: Devices,
|
|
|
+ join: {
|
|
|
+ from: "sip_devices.id",
|
|
|
+ to: "ramais.id_sip",
|
|
|
+ },
|
|
|
+ filter: (builder) => {
|
|
|
+ builder.whereRaw("CAST(sip_devices.name AS INTEGER) = ramais.id_sip");
|
|
|
+ },
|
|
|
},
|
|
|
plano_franquia: {
|
|
|
relation: Model.HasManyRelation,
|
|
|
@@ -36,7 +48,6 @@ class Ramais extends unique(Model) {
|
|
|
from: "franquias.id_planos",
|
|
|
to: "ramais.id_planos",
|
|
|
},
|
|
|
-
|
|
|
},
|
|
|
ramais_franquias: {
|
|
|
relation: Model.HasManyRelation,
|
|
|
@@ -53,17 +64,18 @@ class Ramais extends unique(Model) {
|
|
|
},
|
|
|
},
|
|
|
modify: (query) => {
|
|
|
- query.join("franquias", "ramais_franquias.id_franquias", "franquias.id")
|
|
|
- .select(
|
|
|
- "franquias.nome as nome_franquia",
|
|
|
- "ramais_franquias.franquia_segundos as segundos_disponiveis",
|
|
|
- "franquias.franquia_minutos as total_minutos_franquia",
|
|
|
- this.raw("IF(franquias.LC = 1, 'LC', '') as LC"),
|
|
|
- this.raw("IF(franquias.LDN = 1, 'LDN', '') as LDN"),
|
|
|
- this.raw("IF(franquias.VC1 = 1, 'VC1', '') as VC1"),
|
|
|
- this.raw("IF(franquias.VC2 = 1, 'VC2', '') as VC2"),
|
|
|
- this.raw("IF(franquias.VC3 = 1, 'VC3', '') as VC3")
|
|
|
- );
|
|
|
+ query
|
|
|
+ .join("franquias", "ramais_franquias.id_franquias", "franquias.id")
|
|
|
+ .select(
|
|
|
+ "franquias.nome as nome_franquia",
|
|
|
+ "ramais_franquias.franquia_segundos as segundos_disponiveis",
|
|
|
+ "franquias.franquia_minutos as total_minutos_franquia",
|
|
|
+ this.raw("IF(franquias.LC = 1, 'LC', '') as LC"),
|
|
|
+ this.raw("IF(franquias.LDN = 1, 'LDN', '') as LDN"),
|
|
|
+ this.raw("IF(franquias.VC1 = 1, 'VC1', '') as VC1"),
|
|
|
+ this.raw("IF(franquias.VC2 = 1, 'VC2', '') as VC2"),
|
|
|
+ this.raw("IF(franquias.VC3 = 1, 'VC3', '') as VC3")
|
|
|
+ );
|
|
|
},
|
|
|
},
|
|
|
};
|