@aleonnet/healthcare-scheduler 0.1.20 → 0.1.21

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.
@@ -4,6 +4,7 @@ export declare class PlansRepository {
4
4
  constructor(db: StorageDriver);
5
5
  upsert(plan: Plan): Promise<Plan>;
6
6
  findActive(now: Date): Promise<Plan[]>;
7
+ findActiveByItems(itemIds: string[]): Promise<Record<string, Plan>>;
7
8
  findById(id: string): Promise<Plan | null>;
8
9
  delete(id: string): Promise<void>;
9
10
  endActiveByItem(itemId: string, endsAtISO?: string): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"PlansRepository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/PlansRepository.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAgB,MAAM,kBAAkB,CAAC;AAGrE,qBAAa,eAAe;IACd,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAO/B,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjC,UAAU,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAsBtC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAe1C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBpE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAYpD,OAAO,CAAC,OAAO;CAQhB"}
1
+ {"version":3,"file":"PlansRepository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/PlansRepository.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAgB,MAAM,kBAAkB,CAAC;AAGrE,qBAAa,eAAe;IACd,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAO/B,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjC,UAAU,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA0BtC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAkCnE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAe1C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBpE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAYpD,OAAO,CAAC,OAAO;CAQhB"}
@@ -36,6 +36,27 @@ class PlansRepository {
36
36
  ORDER BY p.starts_at ASC`, [nowISO]);
37
37
  return rows.map(row => this._mapRow(row));
38
38
  }
39
+ async findActiveByItems(itemIds) {
40
+ if (itemIds.length === 0)
41
+ return {};
42
+ const nowISO = new Date().toISOString();
43
+ const placeholders = itemIds.map(() => '?').join(',');
44
+ const rows = await this.db.getAllAsync(`SELECT p.*, i.name as item_name, i.type as item_type, i.meta as item_meta
45
+ FROM plans p
46
+ JOIN items i ON p.item_id = i.id
47
+ WHERE p.item_id IN (${placeholders})
48
+ AND i.deleted_at IS NULL
49
+ AND p.deleted_at IS NULL
50
+ AND (p.ends_at IS NULL OR p.ends_at > ?)
51
+ ORDER BY p.item_id ASC, p.created_at DESC`, [...itemIds, nowISO]);
52
+ const map = {};
53
+ for (const row of rows) {
54
+ if (!map[row.item_id]) {
55
+ map[row.item_id] = this._mapRow(row);
56
+ }
57
+ }
58
+ return map;
59
+ }
39
60
  async findById(id) {
40
61
  const row = await this.db.getFirstAsync(`SELECT p.*, i.name as item_name, i.type as item_type, i.meta as item_meta
41
62
  FROM plans p
@@ -1 +1 @@
1
- {"version":3,"file":"PlansRepository.js","sourceRoot":"","sources":["../../../src/database/repositories/PlansRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlansRepository.js","sourceRoot":"","sources":["../../../src/database/repositories/PlansRepository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aleonnet/healthcare-scheduler",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "Healthcare scheduling and medication reminder system",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",