@enervance/insight-cim-model 1.0.21 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,4 +3,5 @@ import { Feeder } from '../../model/core/Feeder.js';
3
3
  import { InsertStatement } from '../dao-sql-types.js';
4
4
  export declare class FeederDao<T extends Feeder> extends EquipmentContainerDao<Feeder> {
5
5
  toInsertStatements(): InsertStatement[];
6
+ toAssociationInsertStatements(): InsertStatement[];
6
7
  }
@@ -8,20 +8,35 @@ class FeederDao extends EquipmentContainerDao_1.EquipmentContainerDao {
8
8
  ...super.toInsertStatements(),
9
9
  {
10
10
  sql: `
11
- insert into cim.feeder (
12
- mrid,
13
- normal_energizing_substation_mrid
14
- ) values (?, ?)
15
- on conflict (mrid) do update
16
- set normal_energizing_substation_mrid = excluded.normal_energizing_substation_mrid
11
+ insert into cim.feeder (mrid) values ($1)
12
+ on conflict (mrid) do nothing
17
13
  `,
18
14
  params: [
19
- this.cimObject.getUUID(),
20
- this.cimObject.normalEnergizingSubstation?.getUUID() ?? null
15
+ this.cimObject.getUUID()
21
16
  ]
22
17
  }
23
18
  ];
24
19
  }
20
+ toAssociationInsertStatements() {
21
+ return [
22
+ ...super.toAssociationInsertStatements(),
23
+ ...(this.cimObject.normalEnergizingSubstation
24
+ ? [
25
+ {
26
+ sql: `
27
+ update cim.feeder
28
+ set normal_energizing_substation_mrid = $2
29
+ where mrid = $1
30
+ `,
31
+ params: [
32
+ this.cimObject.getUUID(),
33
+ this.cimObject.normalEnergizingSubstation?.getUUID() ?? null
34
+ ]
35
+ }
36
+ ]
37
+ : [])
38
+ ];
39
+ }
25
40
  }
26
41
  exports.FeederDao = FeederDao;
27
42
  //# sourceMappingURL=FeederDao.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeederDao.js","sourceRoot":"","sources":["../../../src/database/core/FeederDao.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAIhE,MAAa,SAA4B,SAAQ,6CAA6B;IACnE,kBAAkB;QACzB,OAAO;YACL,GAAG,KAAK,CAAC,kBAAkB,EAAE;YAC7B;gBACE,GAAG,EAAE;;;;;;;SAOJ;gBACD,MAAM,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;oBACxB,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,OAAO,EAAE,IAAI,IAAI;iBAC7D;aACF;SACF,CAAC;IACJ,CAAC;CACF;AApBD,8BAoBC"}
1
+ {"version":3,"file":"FeederDao.js","sourceRoot":"","sources":["../../../src/database/core/FeederDao.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAIhE,MAAa,SAA4B,SAAQ,6CAA6B;IACnE,kBAAkB;QACzB,OAAO;YACL,GAAG,KAAK,CAAC,kBAAkB,EAAE;YAC7B;gBACE,GAAG,EAAE;;;SAGJ;gBACD,MAAM,EAAE;oBACN,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;iBACzB;aACF;SACF,CAAC;IACJ,CAAC;IAEQ,6BAA6B;QACpC,OAAO;YACL,GAAG,KAAK,CAAC,6BAA6B,EAAE;YAExC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,0BAA0B;gBAC3C,CAAC,CAAC;oBACA;wBACE,GAAG,EAAE;;;;aAIJ;wBACD,MAAM,EAAE;4BACN,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;4BACxB,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,OAAO,EAAE,IAAI,IAAI;yBAC7D;qBACF;iBACF;gBACD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;CACF;AArCD,8BAqCC"}
@@ -3,5 +3,6 @@ import { IdentifiedObject } from '../model/core/IdentifiedObject.js';
3
3
  export declare class DaoStatementPlanner {
4
4
  private readonly resolver;
5
5
  plan(root: IdentifiedObject, powerGridId: number): InsertStatement[];
6
- planMany(roots: IdentifiedObject[], powerGridId: number): InsertStatement[];
6
+ planManyObjects(roots: IdentifiedObject[], powerGridId: number): InsertStatement[];
7
+ planManyAssociations(roots: IdentifiedObject[], powerGridId: number): InsertStatement[];
7
8
  }
@@ -14,7 +14,7 @@ class DaoStatementPlanner {
14
14
  }
15
15
  return statements;
16
16
  }
17
- planMany(roots, powerGridId) {
17
+ planManyObjects(roots, powerGridId) {
18
18
  const visited = new Set();
19
19
  const orderedObjects = [];
20
20
  const resolver = new dao_dependency_resolver_1.DaoDependencyResolver();
@@ -31,15 +31,26 @@ class DaoStatementPlanner {
31
31
  const dao = dao_factory_1.DaoFactory.create(obj, powerGridId);
32
32
  coreStatements.push(...dao.toInsertStatements());
33
33
  }
34
+ return coreStatements;
35
+ }
36
+ planManyAssociations(roots, powerGridId) {
37
+ const visited = new Set();
38
+ const orderedObjects = [];
39
+ const resolver = new dao_dependency_resolver_1.DaoDependencyResolver();
40
+ for (const root of roots) {
41
+ for (const obj of resolver.resolve(root)) {
42
+ if (!visited.has(obj.getUUID())) {
43
+ visited.add(obj.getUUID());
44
+ orderedObjects.push(obj);
45
+ }
46
+ }
47
+ }
34
48
  const associationStatements = [];
35
49
  for (const obj of orderedObjects) {
36
50
  const dao = dao_factory_1.DaoFactory.create(obj, powerGridId);
37
51
  associationStatements.push(...dao.toAssociationInsertStatements());
38
52
  }
39
- return [
40
- ...coreStatements,
41
- ...associationStatements
42
- ];
53
+ return associationStatements;
43
54
  }
44
55
  }
45
56
  exports.DaoStatementPlanner = DaoStatementPlanner;
@@ -1 +1 @@
1
- {"version":3,"file":"dao-statement-planner.js","sourceRoot":"","sources":["../../src/database/dao-statement-planner.ts"],"names":[],"mappings":";;;AACA,+CAA2C;AAC3C,uEAAkE;AAIlE,MAAa,mBAAmB;IACb,QAAQ,GAAG,IAAI,+CAAqB,EAAE,CAAC;IAExD,IAAI,CAAC,IAAsB,EAAE,WAAmB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAsB,EAAE,CAAC;QAEzC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAyB,EAAE,WAAmB;QACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,cAAc,GAAuB,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,+CAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAsB,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,qBAAqB,GAAsB,EAAE,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,qBAAqB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,6BAA6B,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACL,GAAG,cAAc;YACjB,GAAG,qBAAqB;SACzB,CAAC;IACJ,CAAC;CACF;AA9CD,kDA8CC"}
1
+ {"version":3,"file":"dao-statement-planner.js","sourceRoot":"","sources":["../../src/database/dao-statement-planner.ts"],"names":[],"mappings":";;;AACA,+CAA2C;AAC3C,uEAAkE;AAIlE,MAAa,mBAAmB;IACb,QAAQ,GAAG,IAAI,+CAAqB,EAAE,CAAC;IAExD,IAAI,CAAC,IAAsB,EAAE,WAAmB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAsB,EAAE,CAAC;QAEzC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,eAAe,CAAC,KAAyB,EAAE,WAAmB;QAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,cAAc,GAAuB,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,+CAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAsB,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,oBAAoB,CAAC,KAAyB,EAAE,WAAmB;QACjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,cAAc,GAAuB,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,+CAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,qBAAqB,GAAsB,EAAE,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,qBAAqB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,6BAA6B,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC;CACF;AA5DD,kDA4DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enervance/insight-cim-model",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "CIM data model",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",