@en-solutions/tgm-client-sdk 1.6.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.
- package/LICENSE +19 -0
- package/README.md +788 -0
- package/esm2022/en-solutions-tgm-client-sdk.mjs +5 -0
- package/esm2022/lib/components/database-manager/database-manager/database-manager.component.mjs +308 -0
- package/esm2022/lib/components/database-manager/database-manager.module.mjs +66 -0
- package/esm2022/lib/components/database-manager/object-browser/object-browser.component.mjs +98 -0
- package/esm2022/lib/components/database-manager/query-editor/query-editor.component.mjs +196 -0
- package/esm2022/lib/components/database-manager/query-toolbar/query-toolbar.component.mjs +70 -0
- package/esm2022/lib/components/database-manager/record-detail/record-detail.component.mjs +112 -0
- package/esm2022/lib/components/database-manager/registry/entity-registry.mjs +512 -0
- package/esm2022/lib/components/database-manager/results-grid/results-grid.component.mjs +165 -0
- package/esm2022/lib/components/database-manager/services/entity-schema.service.mjs +91 -0
- package/esm2022/lib/components/database-manager/services/query-executor.service.mjs +204 -0
- package/esm2022/lib/components/database-manager/table-data-viewer/table-data-viewer.component.mjs +166 -0
- package/esm2022/lib/components/database-manager/table-structure/table-structure.component.mjs +42 -0
- package/esm2022/lib/components/database-manager/types/database-manager.types.mjs +6 -0
- package/esm2022/lib/components/reporting/export-button/export-button.component.mjs +203 -0
- package/esm2022/lib/components/reporting/generated-report-list/generated-report-list.component.mjs +285 -0
- package/esm2022/lib/components/reporting/report-definition-form/report-definition-form.component.mjs +206 -0
- package/esm2022/lib/components/reporting/report-definition-list/report-definition-list.component.mjs +252 -0
- package/esm2022/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.mjs +122 -0
- package/esm2022/lib/components/reporting/report-stats/report-stats.component.mjs +164 -0
- package/esm2022/lib/components/reporting/report-template-list/report-template-list.component.mjs +114 -0
- package/esm2022/lib/components/reporting/reporting.module.mjs +60 -0
- package/esm2022/lib/components/video-call/incoming-call/incoming-call.component.mjs +80 -0
- package/esm2022/lib/components/video-call/services/livekit-room.service.mjs +142 -0
- package/esm2022/lib/components/video-call/services/video-call-signaling.service.mjs +42 -0
- package/esm2022/lib/components/video-call/services/video-call-state.service.mjs +52 -0
- package/esm2022/lib/components/video-call/types/video-call.types.mjs +2 -0
- package/esm2022/lib/components/video-call/video-call.module.mjs +42 -0
- package/esm2022/lib/components/video-call/video-controls/video-controls.component.mjs +33 -0
- package/esm2022/lib/components/video-call/video-participant/video-participant.component.mjs +68 -0
- package/esm2022/lib/components/video-call/video-room/video-room.component.mjs +89 -0
- package/esm2022/lib/core/auth-interceptor.mjs +33 -0
- package/esm2022/lib/core/client-interceptor.mjs +34 -0
- package/esm2022/lib/core/error-handler.mjs +32 -0
- package/esm2022/lib/core/http-client.service.mjs +254 -0
- package/esm2022/lib/core/websocket.service.mjs +185 -0
- package/esm2022/lib/models/admin/audit.models.mjs +2 -0
- package/esm2022/lib/models/admin/backup.models.mjs +2 -0
- package/esm2022/lib/models/admin/client.models.mjs +2 -0
- package/esm2022/lib/models/admin/email-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/erp.models.mjs +2 -0
- package/esm2022/lib/models/admin/identity-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/index.mjs +14 -0
- package/esm2022/lib/models/admin/messaging-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/platform-admin.models.mjs +2 -0
- package/esm2022/lib/models/admin/queue.models.mjs +2 -0
- package/esm2022/lib/models/admin/role.models.mjs +2 -0
- package/esm2022/lib/models/admin/sandbox.models.mjs +2 -0
- package/esm2022/lib/models/admin/ticket.models.mjs +2 -0
- package/esm2022/lib/models/admin/webhook.models.mjs +2 -0
- package/esm2022/lib/models/api/ai.models.mjs +2 -0
- package/esm2022/lib/models/api/aip.models.mjs +2 -0
- package/esm2022/lib/models/api/cat.models.mjs +2 -0
- package/esm2022/lib/models/api/company.models.mjs +2 -0
- package/esm2022/lib/models/api/compliance.models.mjs +2 -0
- package/esm2022/lib/models/api/component.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-edge.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-event.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-insight.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-node.models.mjs +2 -0
- package/esm2022/lib/models/api/custom-field.models.mjs +2 -0
- package/esm2022/lib/models/api/deferral.models.mjs +2 -0
- package/esm2022/lib/models/api/diagnostic-report.models.mjs +2 -0
- package/esm2022/lib/models/api/document.models.mjs +2 -0
- package/esm2022/lib/models/api/energy.models.mjs +2 -0
- package/esm2022/lib/models/api/failure.models.mjs +2 -0
- package/esm2022/lib/models/api/fleet.models.mjs +2 -0
- package/esm2022/lib/models/api/inspection.models.mjs +2 -0
- package/esm2022/lib/models/api/intervention.models.mjs +2 -0
- package/esm2022/lib/models/api/iot.models.mjs +2 -0
- package/esm2022/lib/models/api/knowledge.models.mjs +2 -0
- package/esm2022/lib/models/api/loto.models.mjs +2 -0
- package/esm2022/lib/models/api/maintenance-record.models.mjs +2 -0
- package/esm2022/lib/models/api/maintenance.models.mjs +2 -0
- package/esm2022/lib/models/api/material.models.mjs +2 -0
- package/esm2022/lib/models/api/media.models.mjs +2 -0
- package/esm2022/lib/models/api/misc.models.mjs +2 -0
- package/esm2022/lib/models/api/project.models.mjs +2 -0
- package/esm2022/lib/models/api/quality.models.mjs +2 -0
- package/esm2022/lib/models/api/reporting.models.mjs +3 -0
- package/esm2022/lib/models/api/reservoir-websocket.models.mjs +17 -0
- package/esm2022/lib/models/api/reservoir.models.mjs +2 -0
- package/esm2022/lib/models/api/search.models.mjs +2 -0
- package/esm2022/lib/models/api/sensor.models.mjs +2 -0
- package/esm2022/lib/models/api/unit.models.mjs +2 -0
- package/esm2022/lib/models/api/user.models.mjs +2 -0
- package/esm2022/lib/models/api/warranty.models.mjs +2 -0
- package/esm2022/lib/models/api/work-permit.models.mjs +2 -0
- package/esm2022/lib/models/api/workflow.models.mjs +2 -0
- package/esm2022/lib/models/auth/index.mjs +4 -0
- package/esm2022/lib/models/auth/login.models.mjs +2 -0
- package/esm2022/lib/models/auth/sso.models.mjs +2 -0
- package/esm2022/lib/models/auth/totp.models.mjs +2 -0
- package/esm2022/lib/models/base.models.mjs +99 -0
- package/esm2022/lib/models/chat/chat.models.mjs +2 -0
- package/esm2022/lib/models/enums/cat.enums.mjs +17 -0
- package/esm2022/lib/models/enums/energy.enums.mjs +8 -0
- package/esm2022/lib/models/enums/erp.enums.mjs +5 -0
- package/esm2022/lib/models/enums/index.mjs +15 -0
- package/esm2022/lib/models/enums/inspection.enums.mjs +7 -0
- package/esm2022/lib/models/enums/loto.enums.mjs +25 -0
- package/esm2022/lib/models/enums/misc.enums.mjs +19 -0
- package/esm2022/lib/models/enums/quality.enums.mjs +22 -0
- package/esm2022/lib/models/enums/reservoir.enums.mjs +13 -0
- package/esm2022/lib/models/enums/sso.enums.mjs +3 -0
- package/esm2022/lib/models/enums/status.enums.mjs +41 -0
- package/esm2022/lib/models/enums/time.enums.mjs +5 -0
- package/esm2022/lib/models/enums/type.enums.mjs +45 -0
- package/esm2022/lib/models/enums/user.enums.mjs +6 -0
- package/esm2022/lib/models/enums/work-permit.enums.mjs +33 -0
- package/esm2022/lib/models/index.mjs +42 -0
- package/esm2022/lib/models/realtime/realtime-event.models.mjs +9 -0
- package/esm2022/lib/models/video/video-call.models.mjs +2 -0
- package/esm2022/lib/services/admin/activity-log.service.mjs +28 -0
- package/esm2022/lib/services/admin/announcement.service.mjs +37 -0
- package/esm2022/lib/services/admin/article-admin.service.mjs +37 -0
- package/esm2022/lib/services/admin/audit-log.service.mjs +53 -0
- package/esm2022/lib/services/admin/backup.service.mjs +28 -0
- package/esm2022/lib/services/admin/cache-admin.service.mjs +64 -0
- package/esm2022/lib/services/admin/client-admin.service.mjs +101 -0
- package/esm2022/lib/services/admin/client-api-key.service.mjs +31 -0
- package/esm2022/lib/services/admin/client-ocr.service.mjs +28 -0
- package/esm2022/lib/services/admin/client-usage.service.mjs +31 -0
- package/esm2022/lib/services/admin/data-export.service.mjs +19 -0
- package/esm2022/lib/services/admin/document-admin.service.mjs +40 -0
- package/esm2022/lib/services/admin/email-admin.service.mjs +28 -0
- package/esm2022/lib/services/admin/email-provider.service.mjs +58 -0
- package/esm2022/lib/services/admin/erp-admin.service.mjs +111 -0
- package/esm2022/lib/services/admin/identity-provider.service.mjs +46 -0
- package/esm2022/lib/services/admin/impersonation.service.mjs +19 -0
- package/esm2022/lib/services/admin/index.mjs +31 -0
- package/esm2022/lib/services/admin/messaging-provider.service.mjs +55 -0
- package/esm2022/lib/services/admin/notification.service.mjs +31 -0
- package/esm2022/lib/services/admin/platform-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/platform-webhook.service.mjs +34 -0
- package/esm2022/lib/services/admin/queue-admin.service.mjs +55 -0
- package/esm2022/lib/services/admin/role-admin.service.mjs +81 -0
- package/esm2022/lib/services/admin/sandbox-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/scheduler-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/subscription.service.mjs +28 -0
- package/esm2022/lib/services/admin/system-health.service.mjs +22 -0
- package/esm2022/lib/services/admin/user-admin.service.mjs +67 -0
- package/esm2022/lib/services/admin/user-permission.service.mjs +40 -0
- package/esm2022/lib/services/admin/webhook-admin.service.mjs +61 -0
- package/esm2022/lib/services/api/agent.service.mjs +29 -0
- package/esm2022/lib/services/api/ai-feedback.service.mjs +17 -0
- package/esm2022/lib/services/api/ai.service.mjs +66 -0
- package/esm2022/lib/services/api/aip-analysis.service.mjs +20 -0
- package/esm2022/lib/services/api/aip-financial.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-geographic.service.mjs +30 -0
- package/esm2022/lib/services/api/aip-network.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-performance.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-resource.service.mjs +23 -0
- package/esm2022/lib/services/api/aip-workflow.service.mjs +32 -0
- package/esm2022/lib/services/api/aip.service.mjs +158 -0
- package/esm2022/lib/services/api/alert.service.mjs +26 -0
- package/esm2022/lib/services/api/anomaly-detection.service.mjs +40 -0
- package/esm2022/lib/services/api/asset-lifecycle.service.mjs +78 -0
- package/esm2022/lib/services/api/audit-entry.service.mjs +22 -0
- package/esm2022/lib/services/api/base-crud.service.mjs +37 -0
- package/esm2022/lib/services/api/bid.service.mjs +17 -0
- package/esm2022/lib/services/api/budget.service.mjs +17 -0
- package/esm2022/lib/services/api/bulk-operation.service.mjs +65 -0
- package/esm2022/lib/services/api/capex-project.service.mjs +17 -0
- package/esm2022/lib/services/api/cat.service.mjs +77 -0
- package/esm2022/lib/services/api/client-article.service.mjs +23 -0
- package/esm2022/lib/services/api/community.service.mjs +41 -0
- package/esm2022/lib/services/api/company-material-type.service.mjs +17 -0
- package/esm2022/lib/services/api/company-material.service.mjs +17 -0
- package/esm2022/lib/services/api/company.service.mjs +30 -0
- package/esm2022/lib/services/api/compliance.service.mjs +74 -0
- package/esm2022/lib/services/api/component-info.service.mjs +17 -0
- package/esm2022/lib/services/api/component-location.service.mjs +17 -0
- package/esm2022/lib/services/api/component.service.mjs +53 -0
- package/esm2022/lib/services/api/cortex-event.service.mjs +17 -0
- package/esm2022/lib/services/api/cortex-insight.service.mjs +23 -0
- package/esm2022/lib/services/api/cortex-node.service.mjs +17 -0
- package/esm2022/lib/services/api/cortex.service.mjs +29 -0
- package/esm2022/lib/services/api/custom-field.service.mjs +70 -0
- package/esm2022/lib/services/api/custom.service.mjs +43 -0
- package/esm2022/lib/services/api/dashboard.service.mjs +44 -0
- package/esm2022/lib/services/api/deferral.service.mjs +54 -0
- package/esm2022/lib/services/api/department.service.mjs +17 -0
- package/esm2022/lib/services/api/device-gateway.service.mjs +33 -0
- package/esm2022/lib/services/api/diagnostic-report.service.mjs +23 -0
- package/esm2022/lib/services/api/digital-twin.service.mjs +56 -0
- package/esm2022/lib/services/api/document.service.mjs +53 -0
- package/esm2022/lib/services/api/dynamic-crud.service.mjs +67 -0
- package/esm2022/lib/services/api/energy-analytics.service.mjs +42 -0
- package/esm2022/lib/services/api/energy-production.service.mjs +17 -0
- package/esm2022/lib/services/api/energy.service.mjs +91 -0
- package/esm2022/lib/services/api/entity-comment.service.mjs +31 -0
- package/esm2022/lib/services/api/event.service.mjs +17 -0
- package/esm2022/lib/services/api/export.service.mjs +216 -0
- package/esm2022/lib/services/api/extension.service.mjs +56 -0
- package/esm2022/lib/services/api/failure.service.mjs +53 -0
- package/esm2022/lib/services/api/fleet.service.mjs +140 -0
- package/esm2022/lib/services/api/inactive-component.service.mjs +17 -0
- package/esm2022/lib/services/api/index.mjs +101 -0
- package/esm2022/lib/services/api/inspection.service.mjs +29 -0
- package/esm2022/lib/services/api/intervention-request.service.mjs +17 -0
- package/esm2022/lib/services/api/intervention.service.mjs +17 -0
- package/esm2022/lib/services/api/knowledge.service.mjs +209 -0
- package/esm2022/lib/services/api/license.service.mjs +25 -0
- package/esm2022/lib/services/api/location.service.mjs +17 -0
- package/esm2022/lib/services/api/log.service.mjs +17 -0
- package/esm2022/lib/services/api/login-history.service.mjs +17 -0
- package/esm2022/lib/services/api/maintenance-plan.service.mjs +17 -0
- package/esm2022/lib/services/api/maintenance-record.service.mjs +17 -0
- package/esm2022/lib/services/api/material-consumable.service.mjs +41 -0
- package/esm2022/lib/services/api/material-instrument.service.mjs +29 -0
- package/esm2022/lib/services/api/material-item.service.mjs +53 -0
- package/esm2022/lib/services/api/material-tooling.service.mjs +41 -0
- package/esm2022/lib/services/api/measurement-unit.service.mjs +17 -0
- package/esm2022/lib/services/api/misc-crud.service.mjs +329 -0
- package/esm2022/lib/services/api/note.service.mjs +37 -0
- package/esm2022/lib/services/api/outage-resource.service.mjs +28 -0
- package/esm2022/lib/services/api/plant-data.service.mjs +31 -0
- package/esm2022/lib/services/api/procurement.service.mjs +53 -0
- package/esm2022/lib/services/api/project.service.mjs +17 -0
- package/esm2022/lib/services/api/property-template.service.mjs +17 -0
- package/esm2022/lib/services/api/quality.service.mjs +29 -0
- package/esm2022/lib/services/api/recurring-event.service.mjs +17 -0
- package/esm2022/lib/services/api/reporting.service.mjs +117 -0
- package/esm2022/lib/services/api/reservoir-data.service.mjs +19 -0
- package/esm2022/lib/services/api/reservoir.service.mjs +209 -0
- package/esm2022/lib/services/api/room.service.mjs +17 -0
- package/esm2022/lib/services/api/sandbox.service.mjs +62 -0
- package/esm2022/lib/services/api/scheduled-report.service.mjs +17 -0
- package/esm2022/lib/services/api/search.service.mjs +77 -0
- package/esm2022/lib/services/api/sensor.service.mjs +36 -0
- package/esm2022/lib/services/api/sla-policy.service.mjs +17 -0
- package/esm2022/lib/services/api/sla.service.mjs +17 -0
- package/esm2022/lib/services/api/threshold-alert-rule.service.mjs +17 -0
- package/esm2022/lib/services/api/ticket.service.mjs +73 -0
- package/esm2022/lib/services/api/time-entry.service.mjs +17 -0
- package/esm2022/lib/services/api/todo.service.mjs +17 -0
- package/esm2022/lib/services/api/unit.service.mjs +17 -0
- package/esm2022/lib/services/api/upload.service.mjs +84 -0
- package/esm2022/lib/services/api/user.service.mjs +107 -0
- package/esm2022/lib/services/api/warehouse.service.mjs +29 -0
- package/esm2022/lib/services/api/warranty.service.mjs +29 -0
- package/esm2022/lib/services/api/work-order.service.mjs +28 -0
- package/esm2022/lib/services/api/work-permit.service.mjs +17 -0
- package/esm2022/lib/services/api/workflow.service.mjs +86 -0
- package/esm2022/lib/services/auth/auth.service.mjs +97 -0
- package/esm2022/lib/services/auth/index.mjs +5 -0
- package/esm2022/lib/services/auth/platform-auth.service.mjs +39 -0
- package/esm2022/lib/services/auth/sso-auth.service.mjs +46 -0
- package/esm2022/lib/services/auth/totp.service.mjs +34 -0
- package/esm2022/lib/services/chat/chat-rest.service.mjs +104 -0
- package/esm2022/lib/services/chat/chat-websocket.service.mjs +70 -0
- package/esm2022/lib/services/chat/index.mjs +3 -0
- package/esm2022/lib/services/index.mjs +8 -0
- package/esm2022/lib/services/realtime/index.mjs +2 -0
- package/esm2022/lib/services/realtime/realtime-event.service.mjs +187 -0
- package/esm2022/lib/services/reservoir/index.mjs +2 -0
- package/esm2022/lib/services/reservoir/reservoir-websocket.service.mjs +105 -0
- package/esm2022/lib/services/video/index.mjs +3 -0
- package/esm2022/lib/services/video/video-call-rest.service.mjs +42 -0
- package/esm2022/lib/services/video/video-call-websocket.service.mjs +55 -0
- package/esm2022/lib/tgm-sdk.config.mjs +32 -0
- package/esm2022/lib/tgm-sdk.module.mjs +38 -0
- package/esm2022/public-api.mjs +52 -0
- package/fesm2022/en-solutions-tgm-client-sdk.mjs +11029 -0
- package/fesm2022/en-solutions-tgm-client-sdk.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/database-manager/database-manager/database-manager.component.d.ts +70 -0
- package/lib/components/database-manager/database-manager.module.d.ts +15 -0
- package/lib/components/database-manager/object-browser/object-browser.component.d.ts +35 -0
- package/lib/components/database-manager/query-editor/query-editor.component.d.ts +31 -0
- package/lib/components/database-manager/query-toolbar/query-toolbar.component.d.ts +23 -0
- package/lib/components/database-manager/record-detail/record-detail.component.d.ts +35 -0
- package/lib/components/database-manager/registry/entity-registry.d.ts +16 -0
- package/lib/components/database-manager/results-grid/results-grid.component.d.ts +62 -0
- package/lib/components/database-manager/services/entity-schema.service.d.ts +37 -0
- package/lib/components/database-manager/services/query-executor.service.d.ts +57 -0
- package/lib/components/database-manager/table-data-viewer/table-data-viewer.component.d.ts +54 -0
- package/lib/components/database-manager/table-structure/table-structure.component.d.ts +16 -0
- package/lib/components/database-manager/types/database-manager.types.d.ts +71 -0
- package/lib/components/reporting/export-button/export-button.component.d.ts +50 -0
- package/lib/components/reporting/generated-report-list/generated-report-list.component.d.ts +93 -0
- package/lib/components/reporting/report-definition-form/report-definition-form.component.d.ts +65 -0
- package/lib/components/reporting/report-definition-list/report-definition-list.component.d.ts +90 -0
- package/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.d.ts +46 -0
- package/lib/components/reporting/report-stats/report-stats.component.d.ts +47 -0
- package/lib/components/reporting/report-template-list/report-template-list.component.d.ts +39 -0
- package/lib/components/reporting/reporting.module.d.ts +14 -0
- package/lib/components/video-call/incoming-call/incoming-call.component.d.ts +20 -0
- package/lib/components/video-call/services/livekit-room.service.d.ts +28 -0
- package/lib/components/video-call/services/video-call-signaling.service.d.ts +21 -0
- package/lib/components/video-call/services/video-call-state.service.d.ts +25 -0
- package/lib/components/video-call/types/video-call.types.d.ts +49 -0
- package/lib/components/video-call/video-call.module.d.ts +11 -0
- package/lib/components/video-call/video-controls/video-controls.component.d.ts +13 -0
- package/lib/components/video-call/video-participant/video-participant.component.d.ts +17 -0
- package/lib/components/video-call/video-room/video-room.component.d.ts +30 -0
- package/lib/core/auth-interceptor.d.ts +13 -0
- package/lib/core/client-interceptor.d.ts +14 -0
- package/lib/core/error-handler.d.ts +13 -0
- package/lib/core/http-client.service.d.ts +61 -0
- package/lib/core/websocket.service.d.ts +37 -0
- package/lib/models/admin/audit.models.d.ts +73 -0
- package/lib/models/admin/backup.models.d.ts +101 -0
- package/lib/models/admin/client.models.d.ts +99 -0
- package/lib/models/admin/email-provider.models.d.ts +56 -0
- package/lib/models/admin/erp.models.d.ts +188 -0
- package/lib/models/admin/identity-provider.models.d.ts +1 -0
- package/lib/models/admin/index.d.ts +13 -0
- package/lib/models/admin/messaging-provider.models.d.ts +49 -0
- package/lib/models/admin/platform-admin.models.d.ts +33 -0
- package/lib/models/admin/queue.models.d.ts +54 -0
- package/lib/models/admin/role.models.d.ts +50 -0
- package/lib/models/admin/sandbox.models.d.ts +54 -0
- package/lib/models/admin/ticket.models.d.ts +48 -0
- package/lib/models/admin/webhook.models.d.ts +65 -0
- package/lib/models/api/ai.models.d.ts +75 -0
- package/lib/models/api/aip.models.d.ts +545 -0
- package/lib/models/api/cat.models.d.ts +260 -0
- package/lib/models/api/company.models.d.ts +125 -0
- package/lib/models/api/compliance.models.d.ts +74 -0
- package/lib/models/api/component.models.d.ts +294 -0
- package/lib/models/api/cortex-edge.models.d.ts +14 -0
- package/lib/models/api/cortex-event.models.d.ts +12 -0
- package/lib/models/api/cortex-insight.models.d.ts +25 -0
- package/lib/models/api/cortex-node.models.d.ts +10 -0
- package/lib/models/api/custom-field.models.d.ts +37 -0
- package/lib/models/api/deferral.models.d.ts +81 -0
- package/lib/models/api/diagnostic-report.models.d.ts +29 -0
- package/lib/models/api/document.models.d.ts +95 -0
- package/lib/models/api/energy.models.d.ts +210 -0
- package/lib/models/api/failure.models.d.ts +171 -0
- package/lib/models/api/fleet.models.d.ts +193 -0
- package/lib/models/api/inspection.models.d.ts +110 -0
- package/lib/models/api/intervention.models.d.ts +254 -0
- package/lib/models/api/iot.models.d.ts +15 -0
- package/lib/models/api/knowledge.models.d.ts +340 -0
- package/lib/models/api/loto.models.d.ts +51 -0
- package/lib/models/api/maintenance-record.models.d.ts +100 -0
- package/lib/models/api/maintenance.models.d.ts +188 -0
- package/lib/models/api/material.models.d.ts +261 -0
- package/lib/models/api/media.models.d.ts +106 -0
- package/lib/models/api/misc.models.d.ts +929 -0
- package/lib/models/api/project.models.d.ts +118 -0
- package/lib/models/api/quality.models.d.ts +153 -0
- package/lib/models/api/reporting.models.d.ts +76 -0
- package/lib/models/api/reservoir-websocket.models.d.ts +48 -0
- package/lib/models/api/reservoir.models.d.ts +274 -0
- package/lib/models/api/search.models.d.ts +30 -0
- package/lib/models/api/sensor.models.d.ts +117 -0
- package/lib/models/api/unit.models.d.ts +82 -0
- package/lib/models/api/user.models.d.ts +253 -0
- package/lib/models/api/warranty.models.d.ts +51 -0
- package/lib/models/api/work-permit.models.d.ts +70 -0
- package/lib/models/api/workflow.models.d.ts +52 -0
- package/lib/models/auth/index.d.ts +3 -0
- package/lib/models/auth/login.models.d.ts +134 -0
- package/lib/models/auth/sso.models.d.ts +136 -0
- package/lib/models/auth/totp.models.d.ts +19 -0
- package/lib/models/base.models.d.ts +90 -0
- package/lib/models/chat/chat.models.d.ts +171 -0
- package/lib/models/enums/cat.enums.d.ts +114 -0
- package/lib/models/enums/energy.enums.d.ts +50 -0
- package/lib/models/enums/erp.enums.d.ts +49 -0
- package/lib/models/enums/index.d.ts +14 -0
- package/lib/models/enums/inspection.enums.d.ts +61 -0
- package/lib/models/enums/loto.enums.d.ts +41 -0
- package/lib/models/enums/misc.enums.d.ts +151 -0
- package/lib/models/enums/quality.enums.d.ts +25 -0
- package/lib/models/enums/reservoir.enums.d.ts +80 -0
- package/lib/models/enums/sso.enums.d.ts +15 -0
- package/lib/models/enums/status.enums.d.ts +296 -0
- package/lib/models/enums/time.enums.d.ts +51 -0
- package/lib/models/enums/type.enums.d.ts +324 -0
- package/lib/models/enums/user.enums.d.ts +31 -0
- package/lib/models/enums/work-permit.enums.d.ts +56 -0
- package/lib/models/index.d.ts +41 -0
- package/lib/models/realtime/realtime-event.models.d.ts +95 -0
- package/lib/models/video/video-call.models.d.ts +65 -0
- package/lib/services/admin/activity-log.service.d.ts +13 -0
- package/lib/services/admin/announcement.service.d.ts +17 -0
- package/lib/services/admin/article-admin.service.d.ts +17 -0
- package/lib/services/admin/audit-log.service.d.ts +22 -0
- package/lib/services/admin/backup.service.d.ts +15 -0
- package/lib/services/admin/cache-admin.service.d.ts +26 -0
- package/lib/services/admin/client-admin.service.d.ts +38 -0
- package/lib/services/admin/client-api-key.service.d.ts +15 -0
- package/lib/services/admin/client-ocr.service.d.ts +14 -0
- package/lib/services/admin/client-usage.service.d.ts +15 -0
- package/lib/services/admin/data-export.service.d.ts +10 -0
- package/lib/services/admin/document-admin.service.d.ts +18 -0
- package/lib/services/admin/email-admin.service.d.ts +14 -0
- package/lib/services/admin/email-provider.service.d.ts +25 -0
- package/lib/services/admin/erp-admin.service.d.ts +41 -0
- package/lib/services/admin/identity-provider.service.d.ts +21 -0
- package/lib/services/admin/impersonation.service.d.ts +11 -0
- package/lib/services/admin/index.d.ts +30 -0
- package/lib/services/admin/messaging-provider.service.d.ts +24 -0
- package/lib/services/admin/notification.service.d.ts +15 -0
- package/lib/services/admin/platform-admin.service.d.ts +17 -0
- package/lib/services/admin/platform-webhook.service.d.ts +16 -0
- package/lib/services/admin/queue-admin.service.d.ts +24 -0
- package/lib/services/admin/role-admin.service.d.ts +37 -0
- package/lib/services/admin/sandbox-admin.service.d.ts +17 -0
- package/lib/services/admin/scheduler-admin.service.d.ts +61 -0
- package/lib/services/admin/subscription.service.d.ts +15 -0
- package/lib/services/admin/system-health.service.d.ts +11 -0
- package/lib/services/admin/user-admin.service.d.ts +27 -0
- package/lib/services/admin/user-permission.service.d.ts +18 -0
- package/lib/services/admin/webhook-admin.service.d.ts +26 -0
- package/lib/services/api/agent.service.d.ts +16 -0
- package/lib/services/api/ai-feedback.service.d.ts +9 -0
- package/lib/services/api/ai.service.d.ts +36 -0
- package/lib/services/api/aip-analysis.service.d.ts +13 -0
- package/lib/services/api/aip-financial.service.d.ts +16 -0
- package/lib/services/api/aip-geographic.service.d.ts +16 -0
- package/lib/services/api/aip-network.service.d.ts +16 -0
- package/lib/services/api/aip-performance.service.d.ts +16 -0
- package/lib/services/api/aip-resource.service.d.ts +14 -0
- package/lib/services/api/aip-workflow.service.d.ts +24 -0
- package/lib/services/api/aip.service.d.ts +73 -0
- package/lib/services/api/alert.service.d.ts +15 -0
- package/lib/services/api/anomaly-detection.service.d.ts +26 -0
- package/lib/services/api/asset-lifecycle.service.d.ts +29 -0
- package/lib/services/api/audit-entry.service.d.ts +13 -0
- package/lib/services/api/base-crud.service.d.ts +18 -0
- package/lib/services/api/bid.service.d.ts +10 -0
- package/lib/services/api/budget.service.d.ts +10 -0
- package/lib/services/api/bulk-operation.service.d.ts +26 -0
- package/lib/services/api/capex-project.service.d.ts +10 -0
- package/lib/services/api/cat.service.d.ts +40 -0
- package/lib/services/api/client-article.service.d.ts +14 -0
- package/lib/services/api/community.service.d.ts +21 -0
- package/lib/services/api/company-material-type.service.d.ts +10 -0
- package/lib/services/api/company-material.service.d.ts +9 -0
- package/lib/services/api/company.service.d.ts +15 -0
- package/lib/services/api/compliance.service.d.ts +35 -0
- package/lib/services/api/component-info.service.d.ts +10 -0
- package/lib/services/api/component-location.service.d.ts +10 -0
- package/lib/services/api/component.service.d.ts +32 -0
- package/lib/services/api/cortex-event.service.d.ts +10 -0
- package/lib/services/api/cortex-insight.service.d.ts +14 -0
- package/lib/services/api/cortex-node.service.d.ts +10 -0
- package/lib/services/api/cortex.service.d.ts +15 -0
- package/lib/services/api/custom-field.service.d.ts +33 -0
- package/lib/services/api/custom.service.d.ts +23 -0
- package/lib/services/api/dashboard.service.d.ts +18 -0
- package/lib/services/api/deferral.service.d.ts +29 -0
- package/lib/services/api/department.service.d.ts +9 -0
- package/lib/services/api/device-gateway.service.d.ts +16 -0
- package/lib/services/api/diagnostic-report.service.d.ts +14 -0
- package/lib/services/api/digital-twin.service.d.ts +29 -0
- package/lib/services/api/document.service.d.ts +28 -0
- package/lib/services/api/dynamic-crud.service.d.ts +41 -0
- package/lib/services/api/energy-analytics.service.d.ts +16 -0
- package/lib/services/api/energy-production.service.d.ts +10 -0
- package/lib/services/api/energy.service.d.ts +46 -0
- package/lib/services/api/entity-comment.service.d.ts +16 -0
- package/lib/services/api/event.service.d.ts +10 -0
- package/lib/services/api/export.service.d.ts +48 -0
- package/lib/services/api/extension.service.d.ts +24 -0
- package/lib/services/api/failure.service.d.ts +28 -0
- package/lib/services/api/fleet.service.d.ts +71 -0
- package/lib/services/api/inactive-component.service.d.ts +10 -0
- package/lib/services/api/index.d.ts +101 -0
- package/lib/services/api/inspection.service.d.ts +16 -0
- package/lib/services/api/intervention-request.service.d.ts +10 -0
- package/lib/services/api/intervention.service.d.ts +10 -0
- package/lib/services/api/knowledge.service.d.ts +106 -0
- package/lib/services/api/license.service.d.ts +14 -0
- package/lib/services/api/location.service.d.ts +9 -0
- package/lib/services/api/log.service.d.ts +9 -0
- package/lib/services/api/login-history.service.d.ts +10 -0
- package/lib/services/api/maintenance-plan.service.d.ts +10 -0
- package/lib/services/api/maintenance-record.service.d.ts +10 -0
- package/lib/services/api/material-consumable.service.d.ts +22 -0
- package/lib/services/api/material-instrument.service.d.ts +16 -0
- package/lib/services/api/material-item.service.d.ts +28 -0
- package/lib/services/api/material-tooling.service.d.ts +22 -0
- package/lib/services/api/measurement-unit.service.d.ts +10 -0
- package/lib/services/api/misc-crud.service.d.ts +167 -0
- package/lib/services/api/note.service.d.ts +14 -0
- package/lib/services/api/outage-resource.service.d.ts +15 -0
- package/lib/services/api/plant-data.service.d.ts +14 -0
- package/lib/services/api/procurement.service.d.ts +27 -0
- package/lib/services/api/project.service.d.ts +10 -0
- package/lib/services/api/property-template.service.d.ts +10 -0
- package/lib/services/api/quality.service.d.ts +16 -0
- package/lib/services/api/recurring-event.service.d.ts +10 -0
- package/lib/services/api/reporting.service.d.ts +38 -0
- package/lib/services/api/reservoir-data.service.d.ts +10 -0
- package/lib/services/api/reservoir.service.d.ts +109 -0
- package/lib/services/api/room.service.d.ts +10 -0
- package/lib/services/api/sandbox.service.d.ts +26 -0
- package/lib/services/api/scheduled-report.service.d.ts +10 -0
- package/lib/services/api/search.service.d.ts +54 -0
- package/lib/services/api/sensor.service.d.ts +17 -0
- package/lib/services/api/sla-policy.service.d.ts +10 -0
- package/lib/services/api/sla.service.d.ts +10 -0
- package/lib/services/api/threshold-alert-rule.service.d.ts +10 -0
- package/lib/services/api/ticket.service.d.ts +60 -0
- package/lib/services/api/time-entry.service.d.ts +10 -0
- package/lib/services/api/todo.service.d.ts +10 -0
- package/lib/services/api/unit.service.d.ts +10 -0
- package/lib/services/api/upload.service.d.ts +50 -0
- package/lib/services/api/user.service.d.ts +59 -0
- package/lib/services/api/warehouse.service.d.ts +15 -0
- package/lib/services/api/warranty.service.d.ts +16 -0
- package/lib/services/api/work-order.service.d.ts +17 -0
- package/lib/services/api/work-permit.service.d.ts +10 -0
- package/lib/services/api/workflow.service.d.ts +33 -0
- package/lib/services/auth/auth.service.d.ts +33 -0
- package/lib/services/auth/index.d.ts +4 -0
- package/lib/services/auth/platform-auth.service.d.ts +16 -0
- package/lib/services/auth/sso-auth.service.d.ts +21 -0
- package/lib/services/auth/totp.service.d.ts +18 -0
- package/lib/services/chat/chat-rest.service.d.ts +40 -0
- package/lib/services/chat/chat-websocket.service.d.ts +34 -0
- package/lib/services/chat/index.d.ts +2 -0
- package/lib/services/index.d.ts +7 -0
- package/lib/services/realtime/index.d.ts +1 -0
- package/lib/services/realtime/realtime-event.service.d.ts +137 -0
- package/lib/services/reservoir/index.d.ts +1 -0
- package/lib/services/reservoir/reservoir-websocket.service.d.ts +47 -0
- package/lib/services/video/index.d.ts +2 -0
- package/lib/services/video/video-call-rest.service.d.ts +19 -0
- package/lib/services/video/video-call-websocket.service.d.ts +31 -0
- package/lib/tgm-sdk.config.d.ts +36 -0
- package/lib/tgm-sdk.module.d.ts +13 -0
- package/package.json +40 -0
- package/public-api.d.ts +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en-solutions-tgm-client-sdk.mjs","sources":["../../src/lib/tgm-sdk.config.ts","../../src/lib/core/http-client.service.ts","../../src/lib/core/auth-interceptor.ts","../../src/lib/core/client-interceptor.ts","../../src/lib/tgm-sdk.module.ts","../../src/lib/core/websocket.service.ts","../../src/lib/core/error-handler.ts","../../src/lib/models/base.models.ts","../../src/lib/models/enums/status.enums.ts","../../src/lib/models/enums/type.enums.ts","../../src/lib/models/enums/erp.enums.ts","../../src/lib/models/enums/sso.enums.ts","../../src/lib/models/enums/user.enums.ts","../../src/lib/models/enums/time.enums.ts","../../src/lib/models/enums/inspection.enums.ts","../../src/lib/models/enums/energy.enums.ts","../../src/lib/models/enums/reservoir.enums.ts","../../src/lib/models/enums/misc.enums.ts","../../src/lib/models/enums/cat.enums.ts","../../src/lib/models/enums/work-permit.enums.ts","../../src/lib/models/enums/loto.enums.ts","../../src/lib/models/enums/quality.enums.ts","../../src/lib/models/realtime/realtime-event.models.ts","../../src/lib/models/api/reservoir-websocket.models.ts","../../src/lib/services/auth/auth.service.ts","../../src/lib/services/auth/sso-auth.service.ts","../../src/lib/services/auth/totp.service.ts","../../src/lib/services/auth/platform-auth.service.ts","../../src/lib/services/admin/client-admin.service.ts","../../src/lib/services/admin/client-api-key.service.ts","../../src/lib/services/admin/platform-admin.service.ts","../../src/lib/services/admin/announcement.service.ts","../../src/lib/services/admin/article-admin.service.ts","../../src/lib/services/admin/erp-admin.service.ts","../../src/lib/services/admin/email-provider.service.ts","../../src/lib/services/admin/messaging-provider.service.ts","../../src/lib/services/admin/identity-provider.service.ts","../../src/lib/services/admin/webhook-admin.service.ts","../../src/lib/services/admin/platform-webhook.service.ts","../../src/lib/services/admin/queue-admin.service.ts","../../src/lib/services/admin/sandbox-admin.service.ts","../../src/lib/services/admin/backup.service.ts","../../src/lib/services/admin/role-admin.service.ts","../../src/lib/services/admin/user-admin.service.ts","../../src/lib/services/admin/user-permission.service.ts","../../src/lib/services/admin/cache-admin.service.ts","../../src/lib/services/admin/audit-log.service.ts","../../src/lib/services/admin/document-admin.service.ts","../../src/lib/services/admin/client-ocr.service.ts","../../src/lib/services/admin/client-usage.service.ts","../../src/lib/services/admin/data-export.service.ts","../../src/lib/services/admin/email-admin.service.ts","../../src/lib/services/admin/subscription.service.ts","../../src/lib/services/admin/system-health.service.ts","../../src/lib/services/admin/notification.service.ts","../../src/lib/services/admin/impersonation.service.ts","../../src/lib/services/admin/activity-log.service.ts","../../src/lib/services/admin/scheduler-admin.service.ts","../../src/lib/services/api/base-crud.service.ts","../../src/lib/services/api/company.service.ts","../../src/lib/services/api/unit.service.ts","../../src/lib/services/api/component.service.ts","../../src/lib/services/api/inspection.service.ts","../../src/lib/services/api/failure.service.ts","../../src/lib/services/api/intervention.service.ts","../../src/lib/services/api/maintenance-record.service.ts","../../src/lib/services/api/intervention-request.service.ts","../../src/lib/services/api/material-item.service.ts","../../src/lib/services/api/material-consumable.service.ts","../../src/lib/services/api/material-instrument.service.ts","../../src/lib/services/api/material-tooling.service.ts","../../src/lib/services/api/sensor.service.ts","../../src/lib/services/api/alert.service.ts","../../src/lib/services/api/project.service.ts","../../src/lib/services/api/capex-project.service.ts","../../src/lib/services/api/budget.service.ts","../../src/lib/services/api/bid.service.ts","../../src/lib/services/api/document.service.ts","../../src/lib/services/api/compliance.service.ts","../../src/lib/services/api/energy.service.ts","../../src/lib/services/api/warranty.service.ts","../../src/lib/services/api/fleet.service.ts","../../src/lib/services/api/sla.service.ts","../../src/lib/services/api/reporting.service.ts","../../src/lib/services/api/bulk-operation.service.ts","../../src/lib/services/api/knowledge.service.ts","../../src/lib/services/api/quality.service.ts","../../src/lib/services/api/workflow.service.ts","../../src/lib/services/api/custom-field.service.ts","../../src/lib/services/api/user.service.ts","../../src/lib/services/api/community.service.ts","../../src/lib/services/api/event.service.ts","../../src/lib/services/api/location.service.ts","../../src/lib/services/api/department.service.ts","../../src/lib/services/api/room.service.ts","../../src/lib/services/api/upload.service.ts","../../src/lib/services/api/search.service.ts","../../src/lib/services/api/ai.service.ts","../../src/lib/services/api/agent.service.ts","../../src/lib/services/api/sandbox.service.ts","../../src/lib/services/api/extension.service.ts","../../src/lib/services/api/dashboard.service.ts","../../src/lib/services/api/export.service.ts","../../src/lib/services/api/todo.service.ts","../../src/lib/services/api/ticket.service.ts","../../src/lib/services/api/note.service.ts","../../src/lib/services/api/log.service.ts","../../src/lib/services/api/login-history.service.ts","../../src/lib/services/api/reservoir.service.ts","../../src/lib/services/api/misc-crud.service.ts","../../src/lib/services/api/client-article.service.ts","../../src/lib/services/api/cat.service.ts","../../src/lib/services/api/maintenance-plan.service.ts","../../src/lib/services/api/recurring-event.service.ts","../../src/lib/services/api/time-entry.service.ts","../../src/lib/services/api/sla-policy.service.ts","../../src/lib/services/api/asset-lifecycle.service.ts","../../src/lib/services/api/inactive-component.service.ts","../../src/lib/services/api/component-location.service.ts","../../src/lib/services/api/component-info.service.ts","../../src/lib/services/api/company-material-type.service.ts","../../src/lib/services/api/company-material.service.ts","../../src/lib/services/api/warehouse.service.ts","../../src/lib/services/api/procurement.service.ts","../../src/lib/services/api/license.service.ts","../../src/lib/services/api/work-permit.service.ts","../../src/lib/services/api/diagnostic-report.service.ts","../../src/lib/services/api/custom.service.ts","../../src/lib/services/api/digital-twin.service.ts","../../src/lib/services/api/dynamic-crud.service.ts","../../src/lib/services/api/work-order.service.ts","../../src/lib/services/api/plant-data.service.ts","../../src/lib/services/api/reservoir-data.service.ts","../../src/lib/services/api/ai-feedback.service.ts","../../src/lib/services/api/device-gateway.service.ts","../../src/lib/services/api/outage-resource.service.ts","../../src/lib/services/api/energy-production.service.ts","../../src/lib/services/api/energy-analytics.service.ts","../../src/lib/services/api/measurement-unit.service.ts","../../src/lib/services/api/property-template.service.ts","../../src/lib/services/api/aip.service.ts","../../src/lib/services/api/deferral.service.ts","../../src/lib/services/api/cortex.service.ts","../../src/lib/services/api/cortex-node.service.ts","../../src/lib/services/api/cortex-event.service.ts","../../src/lib/services/api/cortex-insight.service.ts","../../src/lib/services/api/aip-analysis.service.ts","../../src/lib/services/api/aip-financial.service.ts","../../src/lib/services/api/aip-workflow.service.ts","../../src/lib/services/api/aip-resource.service.ts","../../src/lib/services/api/aip-network.service.ts","../../src/lib/services/api/aip-geographic.service.ts","../../src/lib/services/api/aip-performance.service.ts","../../src/lib/services/api/anomaly-detection.service.ts","../../src/lib/services/api/scheduled-report.service.ts","../../src/lib/services/api/entity-comment.service.ts","../../src/lib/services/api/audit-entry.service.ts","../../src/lib/services/api/threshold-alert-rule.service.ts","../../src/lib/services/chat/chat-rest.service.ts","../../src/lib/services/chat/chat-websocket.service.ts","../../src/lib/services/realtime/realtime-event.service.ts","../../src/lib/services/reservoir/reservoir-websocket.service.ts","../../src/lib/services/video/video-call-rest.service.ts","../../src/lib/services/video/video-call-websocket.service.ts","../../src/lib/components/video-call/video-participant/video-participant.component.ts","../../src/lib/components/video-call/video-participant/video-participant.component.html","../../src/lib/components/video-call/video-controls/video-controls.component.ts","../../src/lib/components/video-call/video-controls/video-controls.component.html","../../src/lib/components/video-call/services/livekit-room.service.ts","../../src/lib/components/video-call/video-room/video-room.component.ts","../../src/lib/components/video-call/video-room/video-room.component.html","../../src/lib/components/video-call/incoming-call/incoming-call.component.ts","../../src/lib/components/video-call/incoming-call/incoming-call.component.html","../../src/lib/components/video-call/video-call.module.ts","../../src/lib/components/video-call/services/video-call-signaling.service.ts","../../src/lib/components/video-call/services/video-call-state.service.ts","../../src/lib/components/reporting/report-template-list/report-template-list.component.ts","../../src/lib/components/reporting/report-template-list/report-template-list.component.html","../../src/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.ts","../../src/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.html","../../src/lib/components/reporting/report-definition-list/report-definition-list.component.ts","../../src/lib/components/reporting/report-definition-list/report-definition-list.component.html","../../src/lib/components/reporting/report-definition-form/report-definition-form.component.ts","../../src/lib/components/reporting/report-definition-form/report-definition-form.component.html","../../src/lib/components/reporting/generated-report-list/generated-report-list.component.ts","../../src/lib/components/reporting/generated-report-list/generated-report-list.component.html","../../src/lib/components/reporting/report-stats/report-stats.component.ts","../../src/lib/components/reporting/report-stats/report-stats.component.html","../../src/lib/components/reporting/export-button/export-button.component.ts","../../src/lib/components/reporting/export-button/export-button.component.html","../../src/lib/components/reporting/reporting.module.ts","../../src/lib/components/database-manager/registry/entity-registry.ts","../../src/lib/components/database-manager/services/entity-schema.service.ts","../../src/lib/components/database-manager/object-browser/object-browser.component.ts","../../src/lib/components/database-manager/object-browser/object-browser.component.html","../../src/lib/components/database-manager/query-editor/query-editor.component.ts","../../src/lib/components/database-manager/query-editor/query-editor.component.html","../../src/lib/components/database-manager/query-toolbar/query-toolbar.component.ts","../../src/lib/components/database-manager/query-toolbar/query-toolbar.component.html","../../src/lib/components/database-manager/results-grid/results-grid.component.ts","../../src/lib/components/database-manager/results-grid/results-grid.component.html","../../src/lib/components/database-manager/table-structure/table-structure.component.ts","../../src/lib/components/database-manager/table-structure/table-structure.component.html","../../src/lib/components/database-manager/services/query-executor.service.ts","../../src/lib/components/database-manager/table-data-viewer/table-data-viewer.component.ts","../../src/lib/components/database-manager/table-data-viewer/table-data-viewer.component.html","../../src/lib/components/database-manager/record-detail/record-detail.component.ts","../../src/lib/components/database-manager/record-detail/record-detail.component.html","../../src/lib/components/database-manager/database-manager/database-manager.component.ts","../../src/lib/components/database-manager/database-manager/database-manager.component.html","../../src/lib/components/database-manager/database-manager.module.ts","../../src/public-api.ts","../../src/en-solutions-tgm-client-sdk.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface TokenStorageStrategy {\n getToken(): string | null;\n setToken(token: string): void;\n removeToken(): void;\n getRefreshToken(): string | null;\n setRefreshToken(token: string): void;\n removeRefreshToken(): void;\n}\n\nexport interface TgmSdkConfig {\n /** Base URL of the TGM Manager backend (e.g., 'http://localhost:1337') */\n baseUrl: string;\n\n /** Static client identifier for multi-tenancy (X-Client-ID header) */\n clientId?: string;\n\n /** WebSocket endpoint path (defaults to '/ws') */\n wsEndpoint?: string;\n\n /** Custom token storage strategy. Defaults to in-memory storage. */\n tokenStorage?: TokenStorageStrategy;\n\n /** Whether to automatically refresh tokens on 401 (defaults to true) */\n autoRefresh?: boolean;\n\n /** Token key name used in auth responses (defaults to 'jwt') */\n tokenKey?: string;\n\n /** Refresh token key name (defaults to 'refreshToken') */\n refreshTokenKey?: string;\n}\n\nexport const TGM_SDK_CONFIG = new InjectionToken<TgmSdkConfig>('TGM_SDK_CONFIG', {\n providedIn: 'root',\n factory: () => ({\n baseUrl: '',\n tokenStorage: new InMemoryTokenStorage(),\n autoRefresh: false,\n })\n});\n\nexport class InMemoryTokenStorage implements TokenStorageStrategy {\n private token: string | null = null;\n private refreshToken: string | null = null;\n\n getToken(): string | null {\n return this.token;\n }\n\n setToken(token: string): void {\n this.token = token;\n }\n\n removeToken(): void {\n this.token = null;\n }\n\n getRefreshToken(): string | null {\n return this.refreshToken;\n }\n\n setRefreshToken(token: string): void {\n this.refreshToken = token;\n }\n\n removeRefreshToken(): void {\n this.refreshToken = null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError, BehaviorSubject, Subject, filter, take, switchMap, catchError } from 'rxjs';\nimport { TgmSdkConfig, InMemoryTokenStorage, TokenStorageStrategy } from '../tgm-sdk.config';\n\nexport interface RequestOptions {\n headers?: Record<string, string>;\n params?: Record<string, string | number | boolean | undefined>;\n responseType?: 'json' | 'blob' | 'text' | 'arraybuffer';\n reportProgress?: boolean;\n skipAuth?: boolean;\n skipClientId?: boolean;\n}\n\n/**\n * Core HTTP client for the TGM SDK.\n * NOT providedIn root — must be provided by the consuming application\n * via useFactory to avoid cross-bundle token mismatch in production builds.\n */\n@Injectable()\nexport class TgmHttpClient {\n private baseUrl = '';\n private tokenStorage: TokenStorageStrategy = new InMemoryTokenStorage();\n private clientId$ = new BehaviorSubject<string | undefined>(undefined);\n private isRefreshing = false;\n private refreshTokenSubject = new Subject<string>();\n private config: TgmSdkConfig;\n\n constructor(private http: HttpClient, config?: TgmSdkConfig | null) {\n this.config = config ?? { baseUrl: '', tokenStorage: new InMemoryTokenStorage(), autoRefresh: false };\n if (config) {\n this.baseUrl = (config.baseUrl || '').replace(/\\/+$/, '');\n this.tokenStorage = config.tokenStorage ?? new InMemoryTokenStorage();\n if (config.clientId) {\n this.clientId$.next(config.clientId);\n }\n }\n }\n\n // --- Token management ---\n\n getToken(): string | null {\n return this.tokenStorage.getToken();\n }\n\n setToken(token: string): void {\n this.tokenStorage.setToken(token);\n }\n\n removeToken(): void {\n this.tokenStorage.removeToken();\n }\n\n getRefreshToken(): string | null {\n return this.tokenStorage.getRefreshToken();\n }\n\n setRefreshToken(token: string): void {\n this.tokenStorage.setRefreshToken(token);\n }\n\n removeRefreshToken(): void {\n this.tokenStorage.removeRefreshToken();\n }\n\n clearTokens(): void {\n this.tokenStorage.removeToken();\n this.tokenStorage.removeRefreshToken();\n }\n\n // --- Client ID management ---\n\n setClientId(clientId: string): void {\n this.clientId$.next(clientId);\n }\n\n getClientId(): string | undefined {\n return this.clientId$.value;\n }\n\n // --- HTTP Methods ---\n\n get<T>(path: string, options?: RequestOptions): Observable<T> {\n return this.request<T>('GET', path, undefined, options);\n }\n\n post<T>(path: string, body?: unknown, options?: RequestOptions): Observable<T> {\n return this.request<T>('POST', path, body, options);\n }\n\n put<T>(path: string, body?: unknown, options?: RequestOptions): Observable<T> {\n return this.request<T>('PUT', path, body, options);\n }\n\n patch<T>(path: string, body?: unknown, options?: RequestOptions): Observable<T> {\n return this.request<T>('PATCH', path, body, options);\n }\n\n delete<T>(path: string, options?: RequestOptions): Observable<T> {\n return this.request<T>('DELETE', path, undefined, options);\n }\n\n upload<T>(path: string, formData: FormData, options?: RequestOptions): Observable<T> {\n return this.request<T>('POST', path, formData, { ...options, headers: { ...(options?.headers || {}) } });\n }\n\n download(path: string, options?: RequestOptions): Observable<Blob> {\n return this.request<Blob>('GET', path, undefined, { ...options, responseType: 'blob' });\n }\n\n // --- Internal ---\n\n private request<T>(method: string, path: string, body?: unknown, options?: RequestOptions): Observable<T> {\n const url = `${this.baseUrl}${path}`;\n\n // Use plain objects for headers and params to avoid cross-bundle class mismatch\n // (SDK's HttpHeaders/HttpParams class !== app's HttpHeaders/HttpParams class in prod builds)\n const headerMap: Record<string, string> = {};\n\n // Auth header\n if (!options?.skipAuth) {\n const token = this.tokenStorage.getToken();\n if (token) {\n headerMap['Authorization'] = `Bearer ${token}`;\n }\n }\n\n // Client ID header\n if (!options?.skipClientId) {\n const clientId = this.clientId$.value;\n if (clientId) {\n headerMap['X-Client-ID'] = clientId;\n }\n }\n\n // Custom headers\n if (options?.headers) {\n for (const [key, value] of Object.entries(options.headers)) {\n headerMap[key] = value;\n }\n }\n\n // Query params — flatten nested objects/arrays for backend compatibility\n const paramMap: Record<string, string> = {};\n if (options?.params) {\n const flatParams = this.flattenParams(options.params);\n for (const [key, value] of Object.entries(flatParams)) {\n if (value !== undefined && value !== null) {\n paramMap[key] = String(value);\n }\n }\n }\n\n const responseType = (options?.responseType ?? 'json') as 'json';\n\n const httpOptions: Record<string, unknown> = { headers: headerMap, params: paramMap, body, responseType };\n\n return (this.http.request(method, url, httpOptions) as Observable<T>).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 401 && !options?.skipAuth && this.config.autoRefresh !== false) {\n return this.handle401<T>(method, path, body, options);\n }\n return throwError(() => this.mapError(error));\n })\n );\n }\n\n private handle401<T>(method: string, path: string, body?: unknown, options?: RequestOptions): Observable<T> {\n if (this.isRefreshing) {\n return this.refreshTokenSubject.pipe(\n take(1),\n switchMap(() => this.request<T>(method, path, body, { ...options, skipAuth: false }))\n );\n }\n\n this.isRefreshing = true;\n const refreshToken = this.tokenStorage.getRefreshToken();\n\n if (!refreshToken) {\n this.isRefreshing = false;\n return throwError(() => ({ status: 401, message: 'No refresh token available' }));\n }\n\n return this.http.post<any>(`${this.baseUrl}/auth/refresh-token`, null, {\n params: { refreshToken }\n }).pipe(\n switchMap((response: any) => {\n this.isRefreshing = false;\n const tokenKey = this.config.tokenKey ?? 'jwt';\n const refreshKey = this.config.refreshTokenKey ?? 'refreshToken';\n const newToken = response[tokenKey] ?? response.data?.[tokenKey];\n const newRefresh = response[refreshKey] ?? response.data?.[refreshKey];\n\n if (newToken) {\n this.tokenStorage.setToken(newToken);\n }\n if (newRefresh) {\n this.tokenStorage.setRefreshToken(newRefresh);\n }\n\n this.refreshTokenSubject.next(newToken);\n return this.request<T>(method, path, body, options);\n }),\n catchError((err) => {\n this.isRefreshing = false;\n this.clearTokens();\n return throwError(() => this.mapError(err));\n })\n );\n }\n\n /**\n * Flattens nested param objects into flat key-value pairs.\n * - `{ filters: { status: 'active' } }` → `{ status: 'active' }`\n * - `{ populate: ['a', 'b'] }` → `{ populate: 'a,b' }`\n * - `{ pagination: { page: 1, pageSize: 25 } }` → `{ page: 1, pageSize: 25 }`\n */\n private flattenParams(params: Record<string, any>): Record<string, string | number | boolean> {\n // Map Strapi pagination params to backend params\n // Note: 'start' (offset) is converted to page number using limit as page size\n const paramKeyMap: Record<string, string> = {\n 'limit': 'pageSize',\n 'page': 'page', 'pageSize': 'pageSize',\n };\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) continue;\n if (Array.isArray(value)) {\n result[key] = value.join(',');\n } else if (typeof value === 'object' && !(value instanceof Date)) {\n // Flatten nested objects: merge their keys directly\n for (const [nestedKey, nestedValue] of Object.entries(value)) {\n if (nestedValue !== undefined && nestedValue !== null) {\n if (typeof nestedValue === 'object' && !Array.isArray(nestedValue)) {\n // Two levels deep: map Strapi operators to backend suffix operators\n // e.g., { unit: { $eq: 5 } } → unit=5, { unit: { $notNull: true } } → unit_isnull=false\n const strapiToBackend: Record<string, string> = {\n '$eq': '', '$ne': '_ne', '$contains': '_contains',\n '$startsWith': '_startsWith', '$endsWith': '_endsWith',\n '$gt': '_gt', '$gte': '_gte', '$lt': '_lt', '$lte': '_lte',\n '$in': '_in', '$notIn': '_notIn', '$null': '_isnull',\n '$notNull': '_isnull', '$eqOrNull': '_eqOrNull',\n };\n for (const [deepKey, deepValue] of Object.entries(nestedValue as any)) {\n if (deepValue !== undefined && deepValue !== null) {\n if (deepKey.startsWith('$')) {\n // Strapi operator: { $eq: 5 } → field=5, { $contains: 'x' } → field_contains=x\n const suffix = strapiToBackend[deepKey] ?? '_' + deepKey.slice(1);\n const finalValue = deepKey === '$notNull' ? !deepValue : deepValue;\n result[`${nestedKey}${suffix}`] = finalValue;\n } else {\n // Relation field: { id: 5 } → field.id=5\n result[`${nestedKey}.${deepKey}`] = deepValue;\n }\n }\n }\n } else {\n const mappedKey = paramKeyMap[nestedKey] || nestedKey;\n result[mappedKey] = Array.isArray(nestedValue) ? nestedValue.join(',') : nestedValue;\n }\n }\n }\n } else {\n const mappedKey = paramKeyMap[key] || key;\n result[mappedKey] = value;\n }\n }\n // Convert Strapi offset-based 'start' to page number\n // Only convert if 'start' is a pure number (Strapi offset), NOT an ISO date string\n if ('start' in result) {\n const startVal = result['start'];\n const isNumericOffset = typeof startVal === 'number' || /^\\d+$/.test(String(startVal));\n if (isNumericOffset) {\n const start = Number(startVal) || 0;\n if ('pageSize' in result) {\n const pageSize = Number(result['pageSize']) || 25;\n result['page'] = Math.floor(start / pageSize);\n } else {\n result['page'] = start;\n }\n delete result['start'];\n }\n // If start is an ISO date string (e.g. \"2026-01-01T00:00:00\"), preserve it as-is\n }\n return result;\n }\n\n private mapError(error: HttpErrorResponse): TgmSdkError {\n return {\n status: error.status,\n message: error.error?.message ?? error.message ?? 'Unknown error',\n error: error.error,\n originalError: error,\n };\n }\n}\n\nexport interface TgmSdkError {\n status: number;\n message: string;\n error?: any;\n originalError?: HttpErrorResponse;\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TGM_SDK_CONFIG, TgmSdkConfig, InMemoryTokenStorage, TokenStorageStrategy } from '../tgm-sdk.config';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n private tokenStorage: TokenStorageStrategy;\n\n constructor(@Inject(TGM_SDK_CONFIG) private config: TgmSdkConfig) {\n this.tokenStorage = config.tokenStorage ?? new InMemoryTokenStorage();\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const token = this.tokenStorage.getToken();\n if (token && this.shouldAddToken(req)) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${token}` },\n });\n }\n return next.handle(req);\n }\n\n private shouldAddToken(req: HttpRequest<any>): boolean {\n const baseUrl = this.config.baseUrl.replace(/\\/+$/, '');\n return req.url.startsWith(baseUrl);\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TGM_SDK_CONFIG, TgmSdkConfig } from '../tgm-sdk.config';\nimport { TgmHttpClient } from './http-client.service';\n\n@Injectable()\nexport class ClientInterceptor implements HttpInterceptor {\n constructor(\n @Inject(TGM_SDK_CONFIG) private config: TgmSdkConfig,\n private httpClient: TgmHttpClient\n ) {}\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const clientId = this.httpClient.getClientId();\n if (clientId && this.shouldAddClientId(req)) {\n req = req.clone({\n setHeaders: { 'X-Client-ID': clientId },\n });\n }\n return next.handle(req);\n }\n\n private shouldAddClientId(req: HttpRequest<any>): boolean {\n const baseUrl = this.config.baseUrl.replace(/\\/+$/, '');\n return req.url.startsWith(baseUrl);\n }\n}\n","import { NgModule, ModuleWithProviders, Optional } from '@angular/core';\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { TGM_SDK_CONFIG, TgmSdkConfig } from './tgm-sdk.config';\nimport { TgmHttpClient } from './core/http-client.service';\nimport { AuthInterceptor } from './core/auth-interceptor';\nimport { ClientInterceptor } from './core/client-interceptor';\n\nexport function tgmHttpClientFactory(http: HttpClient, config: TgmSdkConfig | null): TgmHttpClient {\n return new TgmHttpClient(http, config);\n}\n\n@NgModule({\n imports: [HttpClientModule],\n providers: [\n { provide: TgmHttpClient, useFactory: tgmHttpClientFactory, deps: [HttpClient, [new Optional(), TGM_SDK_CONFIG]] },\n ],\n})\nexport class TgmSdkModule {\n static forRoot(config: TgmSdkConfig): ModuleWithProviders<TgmSdkModule> {\n return {\n ngModule: TgmSdkModule,\n providers: [\n { provide: TGM_SDK_CONFIG, useValue: config },\n { provide: TgmHttpClient, useFactory: tgmHttpClientFactory, deps: [HttpClient, [new Optional(), TGM_SDK_CONFIG]] },\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: ClientInterceptor, multi: true },\n ],\n };\n }\n}\n","import { Injectable, Inject, OnDestroy } from '@angular/core';\nimport { Observable, Subject, BehaviorSubject, share, filter, takeUntil } from 'rxjs';\nimport { Client, IMessage, StompSubscription } from '@stomp/stompjs';\nimport * as SockJSModule from 'sockjs-client';\nconst SockJS = (SockJSModule as any).default || SockJSModule;\nimport { TGM_SDK_CONFIG, TgmSdkConfig } from '../tgm-sdk.config';\nimport { TgmHttpClient } from './http-client.service';\n\nexport type ConnectionState = 'DISCONNECTED' | 'CONNECTING' | 'CONNECTED' | 'ERROR';\n\n@Injectable({ providedIn: 'root' })\nexport class WebSocketService implements OnDestroy {\n private client: Client | null = null;\n private subscriptions = new Map<string, StompSubscription>();\n private messageSubjects = new Map<string, Subject<any>>();\n private destroy$ = new Subject<void>();\n private reconnectAttempts = 0;\n private maxReconnectAttempts = 10;\n private baseReconnectDelay = 1000;\n\n connectionState$ = new BehaviorSubject<ConnectionState>('DISCONNECTED');\n\n constructor(\n @Inject(TGM_SDK_CONFIG) private config: TgmSdkConfig,\n private httpClient: TgmHttpClient\n ) {}\n\n connect(endpoint?: string): void {\n if (this.client?.connected) return;\n\n const wsEndpoint = endpoint ?? this.config.wsEndpoint ?? '/ws';\n const baseUrl = this.config.baseUrl.replace(/\\/+$/, '');\n const url = `${baseUrl}${wsEndpoint}`;\n\n this.connectionState$.next('CONNECTING');\n\n this.client = new Client({\n webSocketFactory: () => new SockJS(url) as any,\n connectHeaders: this.getConnectHeaders(),\n reconnectDelay: 0, // We handle reconnect manually\n heartbeatIncoming: 10000,\n heartbeatOutgoing: 10000,\n onConnect: () => {\n this.connectionState$.next('CONNECTED');\n this.reconnectAttempts = 0;\n this.resubscribeAll();\n },\n onStompError: (frame) => {\n this.connectionState$.next('ERROR');\n console.error('STOMP error:', frame.headers['message']);\n this.scheduleReconnect(endpoint);\n },\n onWebSocketClose: () => {\n if (this.connectionState$.value !== 'DISCONNECTED') {\n this.connectionState$.next('ERROR');\n this.scheduleReconnect(endpoint);\n }\n },\n });\n\n this.client.activate();\n }\n\n disconnect(): void {\n this.connectionState$.next('DISCONNECTED');\n this.subscriptions.forEach((sub) => {\n try { sub.unsubscribe(); } catch (_) {}\n });\n this.subscriptions.clear();\n if (this.client) {\n this.client.deactivate();\n this.client = null;\n }\n }\n\n subscribe<T = any>(destination: string): Observable<T> {\n const prefixed = this.getTenantPrefixedDestination(destination);\n if (!this.messageSubjects.has(prefixed)) {\n this.messageSubjects.set(prefixed, new Subject<T>());\n }\n\n // Subscribe when connected\n if (this.client?.connected && !this.subscriptions.has(prefixed)) {\n this.doSubscribe(prefixed);\n }\n\n return this.messageSubjects.get(prefixed)!.asObservable().pipe(\n takeUntil(this.destroy$),\n share()\n );\n }\n\n unsubscribe(destination: string): void {\n const prefixed = this.getTenantPrefixedDestination(destination);\n const sub = this.subscriptions.get(prefixed);\n if (sub) {\n try { sub.unsubscribe(); } catch (_) {}\n this.subscriptions.delete(prefixed);\n }\n this.messageSubjects.get(prefixed)?.complete();\n this.messageSubjects.delete(prefixed);\n }\n\n send(destination: string, body: any, headers?: Record<string, string>): void {\n if (!this.client?.connected) {\n console.warn('WebSocket not connected, cannot send to', destination);\n return;\n }\n this.client.publish({\n destination,\n body: typeof body === 'string' ? body : JSON.stringify(body),\n headers,\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.disconnect();\n }\n\n /**\n * Prefix /topic/ destinations with the client ID for tenant isolation.\n * Matches server-side WebSocketService.getTenantPrefixedDestination().\n * /user/queue/ destinations are user-scoped and not prefixed.\n */\n private getTenantPrefixedDestination(destination: string): string {\n const clientId = this.httpClient.getClientId();\n if (clientId) {\n if (destination.startsWith('/topic/')) {\n return `/topic/${clientId}${destination.substring(6)}`;\n }\n }\n return destination;\n }\n\n private getConnectHeaders(): Record<string, string> {\n const headers: Record<string, string> = {};\n const token = this.httpClient.getToken();\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n headers['token'] = token;\n }\n const clientId = this.httpClient.getClientId();\n if (clientId) {\n headers['X-Client-ID'] = clientId;\n }\n return headers;\n }\n\n private doSubscribe(destination: string): void {\n if (!this.client?.connected) return;\n const sub = this.client.subscribe(destination, (message: IMessage) => {\n const subject = this.messageSubjects.get(destination);\n if (subject) {\n try {\n subject.next(JSON.parse(message.body));\n } catch {\n subject.next(message.body as any);\n }\n }\n });\n this.subscriptions.set(destination, sub);\n }\n\n private resubscribeAll(): void {\n const destinations = Array.from(this.messageSubjects.keys());\n this.subscriptions.clear();\n for (const dest of destinations) {\n this.doSubscribe(dest);\n }\n }\n\n private scheduleReconnect(endpoint?: string): void {\n if (this.connectionState$.value === 'DISCONNECTED') return;\n if (this.reconnectAttempts >= this.maxReconnectAttempts) {\n console.error('Max WebSocket reconnect attempts reached');\n return;\n }\n const delay = Math.min(\n this.baseReconnectDelay * Math.pow(2, this.reconnectAttempts),\n 30000\n );\n this.reconnectAttempts++;\n setTimeout(() => {\n if (this.connectionState$.value !== 'DISCONNECTED') {\n this.connect(endpoint);\n }\n }, delay);\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class TgmApiError extends Error {\n constructor(\n public readonly status: number,\n message: string,\n public readonly error?: any,\n public readonly originalError?: HttpErrorResponse\n ) {\n super(message);\n this.name = 'TgmApiError';\n }\n\n get isUnauthorized(): boolean {\n return this.status === 401;\n }\n\n get isForbidden(): boolean {\n return this.status === 403;\n }\n\n get isNotFound(): boolean {\n return this.status === 404;\n }\n\n get isValidationError(): boolean {\n return this.status === 400 || this.status === 422;\n }\n\n get isServerError(): boolean {\n return this.status >= 500;\n }\n}\n\nexport function mapHttpError(error: HttpErrorResponse): TgmApiError {\n const message = error.error?.message ?? error.message ?? 'An unknown error occurred';\n return new TgmApiError(error.status, message, error.error, error);\n}\n","export interface ApiResponse<T> {\n success: boolean;\n data: T;\n message?: string;\n error?: any;\n}\n\nexport interface PagedResponse<T> {\n data: T[];\n meta: {\n pagination: {\n page: number;\n pageSize: number;\n pageCount: number;\n total: number;\n };\n };\n}\n\nexport interface PaginationParams {\n page?: number;\n pageSize?: number;\n sort?: string;\n order?: 'ASC' | 'DESC';\n /**\n * Comma-separated list of relation fields to populate (include in response).\n * By default, @JsonIgnore relations are hidden. Use populate to selectively\n * include them. Example: 'location,inspections'\n */\n populate?: string;\n}\n\nexport interface BaseEntity {\n id: number;\n /** Auto-generated unique reference code (e.g. UNT-00001, LOC-00003) */\n referenceCode?: string;\n createdAt?: string;\n updatedAt?: string;\n}\n\n/**\n * Type-safe filter builder for the generic API filtering system.\n *\n * Supports all operators from GenericSpecificationBuilder:\n * - equals, contains, startsWith, endsWith\n * - gte, gt, lte, lt, ne\n * - isIn (comma-separated), isNull\n * - search (full-text across all string fields)\n * - Foreign key dot-notation (e.g., 'unit.name')\n *\n * Usage:\n * ```typescript\n * const filters = new FilterParams()\n * .equals('status', 'ACTIVE')\n * .contains('name', 'turbine')\n * .gte('createdAt', '2024-01-01')\n * .search('maintenance');\n *\n * const response = service.getAll({ ...paginationParams, ...filters.toQueryParams() });\n * ```\n */\nexport class FilterParams {\n private filters: Record<string, string> = {};\n\n /** Exact match (case-insensitive for strings). */\n equals(field: string, value: string): FilterParams {\n this.filters[field] = value;\n return this;\n }\n\n /** Case-insensitive LIKE %value%. */\n contains(field: string, value: string): FilterParams {\n this.filters[`${field}_contains`] = value;\n return this;\n }\n\n /** LIKE value%. */\n startsWith(field: string, value: string): FilterParams {\n this.filters[`${field}_startsWith`] = value;\n return this;\n }\n\n /** LIKE %value. */\n endsWith(field: string, value: string): FilterParams {\n this.filters[`${field}_endsWith`] = value;\n return this;\n }\n\n /** Greater than or equal to. */\n gte(field: string, value: string): FilterParams {\n this.filters[`${field}_gte`] = value;\n return this;\n }\n\n /** Greater than. */\n gt(field: string, value: string): FilterParams {\n this.filters[`${field}_gt`] = value;\n return this;\n }\n\n /** Less than or equal to. */\n lte(field: string, value: string): FilterParams {\n this.filters[`${field}_lte`] = value;\n return this;\n }\n\n /** Less than. */\n lt(field: string, value: string): FilterParams {\n this.filters[`${field}_lt`] = value;\n return this;\n }\n\n /** Not equal. */\n ne(field: string, value: string): FilterParams {\n this.filters[`${field}_ne`] = value;\n return this;\n }\n\n /** IN filter with comma-separated values. */\n isIn(field: string, values: string[]): FilterParams {\n this.filters[`${field}_in`] = values.join(',');\n return this;\n }\n\n /** IS NULL (true) or IS NOT NULL (false). */\n isNull(field: string, isNull: boolean = true): FilterParams {\n this.filters[`${field}_isnull`] = String(isNull);\n return this;\n }\n\n /** Equals value OR field IS NULL. */\n eqOrNull(field: string, value: string): FilterParams {\n this.filters[`${field}_eqOrNull`] = value;\n return this;\n }\n\n /** NOT IN filter with comma-separated values. */\n notIn(field: string, values: string[]): FilterParams {\n this.filters[`${field}_notIn`] = values.join(',');\n return this;\n }\n\n /** Full-text search across all string fields. */\n search(value: string): FilterParams {\n this.filters['search'] = value;\n return this;\n }\n\n /** Converts filters to a query parameter map. */\n toQueryParams(): Record<string, string> {\n return { ...this.filters };\n }\n}\n","export const AlertStatus = { ACTIVE: 'ACTIVE', ACKNOWLEDGED: 'ACKNOWLEDGED', RESOLVED: 'RESOLVED', ESCALATED: 'ESCALATED' } as const;\nexport type AlertStatus = (typeof AlertStatus)[keyof typeof AlertStatus];\n\nexport const AlertSeverity = { INFO: 'INFO', WARNING: 'WARNING', CRITICAL: 'CRITICAL', EMERGENCY: 'EMERGENCY' } as const;\nexport type AlertSeverity = (typeof AlertSeverity)[keyof typeof AlertSeverity];\n\nexport const AnnouncementType = { INFO: 'INFO', WARNING: 'WARNING', MAINTENANCE: 'MAINTENANCE', RELEASE: 'RELEASE', CRITICAL: 'CRITICAL' } as const;\nexport type AnnouncementType = (typeof AnnouncementType)[keyof typeof AnnouncementType];\n\nexport const AncillaryServiceStatus = { ACTIVE: 'ACTIVE', EXPIRED: 'EXPIRED', SUSPENDED: 'SUSPENDED', PENDING: 'PENDING' } as const;\nexport type AncillaryServiceStatus = (typeof AncillaryServiceStatus)[keyof typeof AncillaryServiceStatus];\n\nexport const ApiTokenStatus = { ACTIVE: 'ACTIVE', REVOKED: 'REVOKED', EXPIRED: 'EXPIRED' } as const;\nexport type ApiTokenStatus = (typeof ApiTokenStatus)[keyof typeof ApiTokenStatus];\n\nexport const ApprovalStatus = { PENDING: 'PENDING', APPROVED: 'APPROVED', REJECTED: 'REJECTED' } as const;\nexport type ApprovalStatus = (typeof ApprovalStatus)[keyof typeof ApprovalStatus];\n\nexport const AssetLifecycleStatus = { PENDING: 'PENDING', IN_PROGRESS: 'IN_PROGRESS', COMPLETED: 'COMPLETED' } as const;\nexport type AssetLifecycleStatus = (typeof AssetLifecycleStatus)[keyof typeof AssetLifecycleStatus];\n\nexport const AssetLifecycleStage = { PLANNING: 'PLANNING', PROCUREMENT: 'PROCUREMENT', INSTALLATION: 'INSTALLATION', COMMISSIONING: 'COMMISSIONING', OPERATIONAL: 'OPERATIONAL', DEGRADED: 'DEGRADED', MAINTENANCE: 'MAINTENANCE', DECOMMISSIONED: 'DECOMMISSIONED', DISPOSED: 'DISPOSED' } as const;\nexport type AssetLifecycleStage = (typeof AssetLifecycleStage)[keyof typeof AssetLifecycleStage];\n\nexport const AssetPhase = { ACQUISITION: 'ACQUISITION', OPERATIONAL: 'OPERATIONAL', OUT_OF_SERVICE: 'OUT_OF_SERVICE', REHABILITATION: 'REHABILITATION', DISPOSAL: 'DISPOSAL' } as const;\nexport type AssetPhase = (typeof AssetPhase)[keyof typeof AssetPhase];\n\nexport const BackupStatus = { PENDING: 'PENDING', IN_PROGRESS: 'IN_PROGRESS', COMPLETED: 'COMPLETED', FAILED: 'FAILED' } as const;\nexport type BackupStatus = (typeof BackupStatus)[keyof typeof BackupStatus];\n\nexport const CAPAStatus = { IDENTIFIED: 'IDENTIFIED', PLANNED: 'PLANNED', IN_PROGRESS: 'IN_PROGRESS', IMPLEMENTED: 'IMPLEMENTED', VERIFIED: 'VERIFIED', CLOSED: 'CLOSED', CANCELLED: 'CANCELLED' } as const;\nexport type CAPAStatus = (typeof CAPAStatus)[keyof typeof CAPAStatus];\n\nexport const ClientStatus = { PENDING: 'PENDING', PROVISIONING: 'PROVISIONING', ACTIVE: 'ACTIVE', SUSPENDED: 'SUSPENDED', TERMINATED: 'TERMINATED' } as const;\nexport type ClientStatus = (typeof ClientStatus)[keyof typeof ClientStatus];\n\nexport const ComplianceSubmissionStatus = { DRAFT: 'DRAFT', SUBMITTED: 'SUBMITTED', UNDER_REVIEW: 'UNDER_REVIEW', APPROVED: 'APPROVED', REJECTED: 'REJECTED', REVISION_REQUIRED: 'REVISION_REQUIRED' } as const;\nexport type ComplianceSubmissionStatus = (typeof ComplianceSubmissionStatus)[keyof typeof ComplianceSubmissionStatus];\n\nexport const ComponentInfoStatus = { ACTIVE: 'ACTIVE', INACTIVE: 'INACTIVE' } as const;\nexport type ComponentInfoStatus = (typeof ComponentInfoStatus)[keyof typeof ComponentInfoStatus];\n\nexport const CurtailmentStatus = { ACTIVE: 'ACTIVE', COMPLETED: 'COMPLETED', CANCELLED: 'CANCELLED' } as const;\nexport type CurtailmentStatus = (typeof CurtailmentStatus)[keyof typeof CurtailmentStatus];\n\nexport const DriverStatus = { ACTIVE: 'ACTIVE', INACTIVE: 'INACTIVE', SUSPENDED: 'SUSPENDED' } as const;\nexport type DriverStatus = (typeof DriverStatus)[keyof typeof DriverStatus];\n\nexport const ExtensionStatus = { REGISTERED: 'REGISTERED', ENABLED: 'ENABLED', DISABLED: 'DISABLED' } as const;\nexport type ExtensionStatus = (typeof ExtensionStatus)[keyof typeof ExtensionStatus];\n\nexport const GridConnectionStatus = { ACTIVE: 'ACTIVE', INACTIVE: 'INACTIVE', UNDER_MAINTENANCE: 'UNDER_MAINTENANCE', DISCONNECTED: 'DISCONNECTED' } as const;\nexport type GridConnectionStatus = (typeof GridConnectionStatus)[keyof typeof GridConnectionStatus];\n\nexport const MaintenanceStatus = { SCHEDULED: 'SCHEDULED', IN_PROGRESS: 'IN_PROGRESS', COMPLETED: 'COMPLETED', CANCELLED: 'CANCELLED' } as const;\nexport type MaintenanceStatus = (typeof MaintenanceStatus)[keyof typeof MaintenanceStatus];\n\nexport const MeteringParameterStatus = { PENDING: 'pending', ON_GOING: 'onGoing', GENERATED: 'generated' } as const;\nexport type MeteringParameterStatus = (typeof MeteringParameterStatus)[keyof typeof MeteringParameterStatus];\n\nexport const MigrationStatus = { PENDING: 'PENDING', IN_PROGRESS: 'IN_PROGRESS', SUCCESS: 'SUCCESS', FAILED: 'FAILED' } as const;\nexport type MigrationStatus = (typeof MigrationStatus)[keyof typeof MigrationStatus];\n\nexport const ObligationStatus = { ACTIVE: 'ACTIVE', COMPLETED: 'COMPLETED', OVERDUE: 'OVERDUE', WAIVED: 'WAIVED' } as const;\nexport type ObligationStatus = (typeof ObligationStatus)[keyof typeof ObligationStatus];\n\nexport const OcrProcessingStatus = { PENDING: 'PENDING', PROCESSING: 'PROCESSING', COMPLETED: 'COMPLETED', FAILED: 'FAILED' } as const;\nexport type OcrProcessingStatus = (typeof OcrProcessingStatus)[keyof typeof OcrProcessingStatus];\n\nexport const OutageStatus = { ACTIVE: 'ACTIVE', COMPLETED: 'COMPLETED', CANCELLED: 'CANCELLED' } as const;\nexport type OutageStatus = (typeof OutageStatus)[keyof typeof OutageStatus];\n\nexport const PermitStatus = { ACTIVE: 'ACTIVE', EXPIRED: 'EXPIRED', SUSPENDED: 'SUSPENDED', REVOKED: 'REVOKED', PENDING_RENEWAL: 'PENDING_RENEWAL' } as const;\nexport type PermitStatus = (typeof PermitStatus)[keyof typeof PermitStatus];\n\nexport const PlantStatus = { IN_OPERATION: 'IN_OPERATION', UNDER_CONSTRUCTION: 'UNDER_CONSTRUCTION', PROJECT_STAGE: 'PROJECT_STAGE', OUT_OF_SERVICE: 'OUT_OF_SERVICE' } as const;\nexport type PlantStatus = (typeof PlantStatus)[keyof typeof PlantStatus];\n\nexport const PresenceStatus = { ONLINE: 'ONLINE', AWAY: 'AWAY', DND: 'DND' } as const;\nexport type PresenceStatus = (typeof PresenceStatus)[keyof typeof PresenceStatus];\n\nexport const RCAStatus = { DRAFT: 'draft', IN_PROGRESS: 'inProgress', COMPLETED: 'completed', PENDING_REVIEW: 'pendingReview', UNDER_REVIEW: 'underReview', APPROVED: 'approved', REJECTED: 'rejected', CLOSED: 'closed', ARCHIVED: 'archived' } as const;\nexport type RCAStatus = (typeof RCAStatus)[keyof typeof RCAStatus];\n\nexport const SandboxStatus = { PENDING: 'PENDING', PROVISIONING: 'PROVISIONING', ACTIVE: 'ACTIVE', SUSPENDED: 'SUSPENDED' } as const;\nexport type SandboxStatus = (typeof SandboxStatus)[keyof typeof SandboxStatus];\n\nexport const SubscriptionStatus = { ACTIVE: 'ACTIVE', TRIAL: 'TRIAL', PAST_DUE: 'PAST_DUE', CANCELLED: 'CANCELLED', SUSPENDED: 'SUSPENDED' } as const;\nexport type SubscriptionStatus = (typeof SubscriptionStatus)[keyof typeof SubscriptionStatus];\n\nexport const TicketStatus = { OPEN: 'OPEN', IN_PROGRESS: 'IN_PROGRESS', WAITING: 'WAITING', RESOLVED: 'RESOLVED', CLOSED: 'CLOSED' } as const;\nexport type TicketStatus = (typeof TicketStatus)[keyof typeof TicketStatus];\n\nexport const TrackingStatus = { ONLINE: 'ONLINE', OFFLINE: 'OFFLINE', IDLE: 'IDLE', MOVING: 'MOVING' } as const;\nexport type TrackingStatus = (typeof TrackingStatus)[keyof typeof TrackingStatus];\n\nexport const TripStatus = { IN_PROGRESS: 'IN_PROGRESS', COMPLETED: 'COMPLETED' } as const;\nexport type TripStatus = (typeof TripStatus)[keyof typeof TripStatus];\n\nexport const UnitStatus = { SHUTDOWN: 'shutdown', IN_OPERATION: 'inOperation', UNDER_CONSTRUCTION: 'underConstruction', PROJECT_STAGE: 'projectStage' } as const;\nexport type UnitStatus = (typeof UnitStatus)[keyof typeof UnitStatus];\n\nexport const VehicleStatus = { AVAILABLE: 'AVAILABLE', IN_USE: 'IN_USE', MAINTENANCE: 'MAINTENANCE' } as const;\nexport type VehicleStatus = (typeof VehicleStatus)[keyof typeof VehicleStatus];\n\nexport const WarrantyStatus = { ACTIVE: 'ACTIVE', EXPIRED: 'EXPIRED', CANCELLED: 'CANCELLED', PENDING: 'PENDING' } as const;\nexport type WarrantyStatus = (typeof WarrantyStatus)[keyof typeof WarrantyStatus];\n\nexport const WarrantyClaimStatus = { DRAFT: 'DRAFT', SUBMITTED: 'SUBMITTED', UNDER_REVIEW: 'UNDER_REVIEW', APPROVED: 'APPROVED', REJECTED: 'REJECTED', PAID: 'PAID', CLOSED: 'CLOSED' } as const;\nexport type WarrantyClaimStatus = (typeof WarrantyClaimStatus)[keyof typeof WarrantyClaimStatus];\n\nexport const WorkflowStatus = { PENDING: 'PENDING', IN_REVIEW: 'IN_REVIEW', APPROVED: 'APPROVED', REJECTED: 'REJECTED', ESCALATED: 'ESCALATED', CANCELLED: 'CANCELLED', COMPLETED: 'COMPLETED' } as const;\nexport type WorkflowStatus = (typeof WorkflowStatus)[keyof typeof WorkflowStatus];\n\nexport const InterventionRequestStatus = { ON_HOLD: 'OnHold', ACCEPTED: 'Accepted', REJECTED: 'Rejected' } as const;\nexport type InterventionRequestStatus = (typeof InterventionRequestStatus)[keyof typeof InterventionRequestStatus];\n\nexport const WorkOrderStatus = { COMPLETED: 'Completed', IN_PROGRESS: 'InProgress', PENDING: 'Pending', CANCELLED: 'Cancelled', PLANNED_NOT_SCHEDULED: 'plannedNotScheduled', DRAFT: 'Draft', PLANNED_SCHEDULED: 'plannedScheduled', CLOSED: 'Closed' } as const;\nexport type WorkOrderStatus = (typeof WorkOrderStatus)[keyof typeof WorkOrderStatus];\n","export const AncillaryServiceType = { FREQUENCY_REGULATION: 'FREQUENCY_REGULATION', SPINNING_RESERVE: 'SPINNING_RESERVE', NON_SPINNING_RESERVE: 'NON_SPINNING_RESERVE', VOLTAGE_SUPPORT: 'VOLTAGE_SUPPORT', BLACK_START: 'BLACK_START', REACTIVE_POWER: 'REACTIVE_POWER' } as const;\nexport type AncillaryServiceType = (typeof AncillaryServiceType)[keyof typeof AncillaryServiceType];\n\nexport const CAPAType = { CORRECTIVE: 'CORRECTIVE', PREVENTIVE: 'PREVENTIVE', IMPROVEMENT: 'IMPROVEMENT' } as const;\nexport type CAPAType = (typeof CAPAType)[keyof typeof CAPAType];\n\nexport const ChatMessageType = { TEXT: 'TEXT', IMAGE: 'IMAGE', FILE: 'FILE', SYSTEM: 'SYSTEM' } as const;\nexport type ChatMessageType = (typeof ChatMessageType)[keyof typeof ChatMessageType];\n\nexport const ChecklistPeriodicity = {\n ALL: 'ALL',\n H_OFF: 'H_OFF', H_ON: 'H_ON', H_ALL: 'H_ALL',\n D_OFF: 'D_OFF', D_ON: 'D_ON', D_ALL: 'D_ALL',\n W_OFF: 'W_OFF', W_ON: 'W_ON', W_ALL: 'W_ALL',\n M_OFF: 'M_OFF', M_ON: 'M_ON', M_ALL: 'M_ALL',\n Q_OFF: 'Q_OFF', Q_ON: 'Q_ON', Q_ALL: 'Q_ALL',\n B_OFF: 'B_OFF', B_ON: 'B_ON', B_ALL: 'B_ALL',\n A_OFF: 'A_OFF', A_ON: 'A_ON', A_ALL: 'A_ALL',\n C_OFF: 'C_OFF', C_ON: 'C_ON', C_ALL: 'C_ALL',\n} as const;\nexport type ChecklistPeriodicity = (typeof ChecklistPeriodicity)[keyof typeof ChecklistPeriodicity];\n\nexport const ChecklistRunningMode = { OFF: 'OFF', ON: 'ON', ALL: 'ALL' } as const;\nexport type ChecklistRunningMode = (typeof ChecklistRunningMode)[keyof typeof ChecklistRunningMode];\n\nexport const ComponentCategory = { ASSET: 'asset', PIPING: 'piping', PROTECTION_CONTROL: 'protectionControl', HYBRID_PLANT: 'hybridPlant', INSTRUMENTATION: 'instrumentation' } as const;\nexport type ComponentCategory = (typeof ComponentCategory)[keyof typeof ComponentCategory];\n\nexport const ComponentInfoCategory = { ASSET: 'ASSET', PIPING: 'PIPING', PROTECTION_CONTROL: 'PROTECTION_CONTROL', HYBRID_PLANT: 'HYBRID_PLANT', INSTRUMENTATION: 'INSTRUMENTATION' } as const;\nexport type ComponentInfoCategory = (typeof ComponentInfoCategory)[keyof typeof ComponentInfoCategory];\n\nexport const ComponentInfoType = { ASSET: 'ASSET', SENSOR: 'SENSOR' } as const;\nexport type ComponentInfoType = (typeof ComponentInfoType)[keyof typeof ComponentInfoType];\n\nexport const ComponentType = { STANDALONE: 'STANDALONE', REGULAR: 'REGULAR', HYBRID_PLANT: 'HYBRIDPLANT' } as const;\nexport type ComponentType = (typeof ComponentType)[keyof typeof ComponentType];\n\nexport const ConversationType = { DIRECT: 'DIRECT', GROUP: 'GROUP' } as const;\nexport type ConversationType = (typeof ConversationType)[keyof typeof ConversationType];\n\nexport const CostAllocation = { PREVENTIVE: 'preventive', CORRECTIVE: 'corrective', SPECIAL_MAINTENANCE: 'specialMaintenance', EMERGENCY: 'emergency', CONTINGENCIES: 'contingencies', PROJECT: 'project', MATERIAL_PROCUREMENT: 'materialProcurement', OPERATIONS: 'operations' } as const;\nexport type CostAllocation = (typeof CostAllocation)[keyof typeof CostAllocation];\n\nexport const CurtailmentType = { ECONOMIC: 'ECONOMIC', RELIABILITY: 'RELIABILITY', ENVIRONMENTAL: 'ENVIRONMENTAL', TRANSMISSION_CONSTRAINT: 'TRANSMISSION_CONSTRAINT', VOLUNTARY: 'VOLUNTARY' } as const;\nexport type CurtailmentType = (typeof CurtailmentType)[keyof typeof CurtailmentType];\n\nexport const CustomFieldType = { STRING: 'STRING', TEXT: 'TEXT', NUMBER: 'NUMBER', BOOLEAN: 'BOOLEAN', DATE: 'DATE', DATETIME: 'DATETIME', JSON: 'JSON', ENUM: 'ENUM' } as const;\nexport type CustomFieldType = (typeof CustomFieldType)[keyof typeof CustomFieldType];\n\nexport const EventNature = { INCIDENT: 'incident', FAILURE: 'failure', PERTURBATION: 'perturbation', TRIP: 'trip' } as const;\nexport type EventNature = (typeof EventNature)[keyof typeof EventNature];\n\nexport const FailureImpact = { INSIGNIFICANT: 'Insignificant', MARGINAL: 'Marginal', MODERATE: 'Moderate', CRITICAL: 'Critical', CATASTROPHIC: 'Catastrophic' } as const;\nexport type FailureImpact = (typeof FailureImpact)[keyof typeof FailureImpact];\n\nexport const FailureLikelihood = { UNLIKELY: 'Unlikely', SELDOM: 'Seldom', OCCASIONAL: 'Occasional', LIKELY: 'Likely', DEFINITE: 'Definite' } as const;\nexport type FailureLikelihood = (typeof FailureLikelihood)[keyof typeof FailureLikelihood];\n\nexport const FailureRiskLevel = { LOW: 'Low', MEDIUM: 'Medium', HIGH: 'High', EXTREME: 'Extreme' } as const;\nexport type FailureRiskLevel = (typeof FailureRiskLevel)[keyof typeof FailureRiskLevel];\n\nexport const FuelType = { GASOLINE: 'GASOLINE', DIESEL: 'DIESEL', ELECTRIC: 'ELECTRIC', HYBRID: 'HYBRID', PROPANE: 'PROPANE', NATURAL_GAS: 'NATURAL_GAS' } as const;\nexport type FuelType = (typeof FuelType)[keyof typeof FuelType];\n\nexport const IncidentCategory = { LOST_TIME_INJURY: 'lostTimeInjury', HIGH_RISK_INCIDENT: 'highRiskIncident', FIRE_EXPLOSION: 'fireExplosion', NEAR_MISS: 'nearMiss', CAR_ACCIDENT: 'carAccident', OTHER: 'other' } as const;\nexport type IncidentCategory = (typeof IncidentCategory)[keyof typeof IncidentCategory];\n\nexport const IncidentType = { INTERVENTION: 'intervention', MAINTENANCE: 'maintenance', OTHER: 'other' } as const;\nexport type IncidentType = (typeof IncidentType)[keyof typeof IncidentType];\n\nexport const InspectionType = { V: 'V', M: 'M', F: 'F', A: 'A', E: 'E', C: 'C', N: 'N', ALL: 'ALL' } as const;\nexport type InspectionType = (typeof InspectionType)[keyof typeof InspectionType];\n\nexport const LayoutType = { COVER: 'COVER', POPUP: 'POPUP' } as const;\nexport type LayoutType = (typeof LayoutType)[keyof typeof LayoutType];\n\nexport const MaintenanceType = { PREVENTIVE: 'preventive', PREDICTIVE: 'predictive', DETECTIVE: 'detective', REACTIVE: 'reactive', CORRECTIVE: 'corrective' } as const;\nexport type MaintenanceType = (typeof MaintenanceType)[keyof typeof MaintenanceType];\n\nexport const MeteringParameterType = { OPERATING_HOURS: 'operatingHours', START_STOPS: 'startStops', PERIODICITY: 'periodicity' } as const;\nexport type MeteringParameterType = (typeof MeteringParameterType)[keyof typeof MeteringParameterType];\n\nexport const ObligationType = { REPORTING: 'REPORTING', MONITORING: 'MONITORING', INSPECTION: 'INSPECTION', TESTING: 'TESTING', FILING: 'FILING' } as const;\nexport type ObligationType = (typeof ObligationType)[keyof typeof ObligationType];\n\nexport const OutageType = { PLANNED: 'PLANNED', FORCED: 'FORCED', MAINTENANCE: 'MAINTENANCE', EMERGENCY: 'EMERGENCY' } as const;\nexport type OutageType = (typeof OutageType)[keyof typeof OutageType];\n\nexport const PermitType = { AIR: 'AIR', WATER: 'WATER', WASTE: 'WASTE', NOISE: 'NOISE', LAND_USE: 'LAND_USE', ENVIRONMENTAL_IMPACT: 'ENVIRONMENTAL_IMPACT' } as const;\nexport type PermitType = (typeof PermitType)[keyof typeof PermitType];\n\nexport const PremiseType = { PLANT: 'PLANT', OFFICE: 'OFFICE', WAREHOUSE: 'WAREHOUSE', DAM: 'DAM', HYBRID_PLANT: 'HYBRID_PLANT', OTHER: 'OTHER' } as const;\nexport type PremiseType = (typeof PremiseType)[keyof typeof PremiseType];\n\nexport const SensorType = { TEMPERATURE: 'TEMPERATURE', PRESSURE: 'PRESSURE', VIBRATION: 'VIBRATION', FLOW_RATE: 'FLOW_RATE', LEVEL: 'LEVEL', HUMIDITY: 'HUMIDITY', VOLTAGE: 'VOLTAGE', CURRENT: 'CURRENT', POWER: 'POWER', SPEED: 'SPEED', PH: 'PH', CONDUCTIVITY: 'CONDUCTIVITY', TURBIDITY: 'TURBIDITY', DISSOLVED_OXYGEN: 'DISSOLVED_OXYGEN', CHLORINE: 'CHLORINE', ORP: 'ORP', ACOUSTIC: 'ACOUSTIC', ULTRASONIC: 'ULTRASONIC', PROXIMITY: 'PROXIMITY', POSITION: 'POSITION', TORQUE: 'TORQUE', FORCE: 'FORCE', WEIGHT: 'WEIGHT', STRAIN: 'STRAIN', ACCELERATION: 'ACCELERATION', WATERLEVEL: 'WATERLEVEL', SEEPAGE: 'SEEPAGE', SETTLEMENT: 'SETTLEMENT', FISH_PASSAGE: 'FISH_PASSAGE', WEATHER: 'WEATHER', TILT: 'TILT', WATER_QUALITY: 'WATER_QUALITY', LOAD: 'LOAD', OTHER: 'OTHER' } as const;\nexport type SensorType = (typeof SensorType)[keyof typeof SensorType];\n\nexport const VehicleType = { TRUCK: 'TRUCK', VAN: 'VAN', CAR: 'CAR', SUV: 'SUV', EQUIPMENT: 'EQUIPMENT', TRAILER: 'TRAILER' } as const;\nexport type VehicleType = (typeof VehicleType)[keyof typeof VehicleType];\n\nexport const VehicleInspectionType = { PRE_TRIP: 'PRE_TRIP', POST_TRIP: 'POST_TRIP', SAFETY: 'SAFETY', DOT: 'DOT', ANNUAL: 'ANNUAL', MONTHLY: 'MONTHLY' } as const;\nexport type VehicleInspectionType = (typeof VehicleInspectionType)[keyof typeof VehicleInspectionType];\n\nexport const VehicleMaintenanceType = { OIL_CHANGE: 'OIL_CHANGE', TIRE_ROTATION: 'TIRE_ROTATION', TIRE_REPLACEMENT: 'TIRE_REPLACEMENT', BRAKE_SERVICE: 'BRAKE_SERVICE', INSPECTION: 'INSPECTION', REPAIR: 'REPAIR', SCHEDULED_SERVICE: 'SCHEDULED_SERVICE', RECALL: 'RECALL', ENGINE_SERVICE: 'ENGINE_SERVICE', TRANSMISSION_SERVICE: 'TRANSMISSION_SERVICE', BATTERY_REPLACEMENT: 'BATTERY_REPLACEMENT' } as const;\nexport type VehicleMaintenanceType = (typeof VehicleMaintenanceType)[keyof typeof VehicleMaintenanceType];\n\nexport const WarrantyType = { MANUFACTURER: 'MANUFACTURER', EXTENDED: 'EXTENDED', COMPONENT: 'COMPONENT', SERVICE: 'SERVICE' } as const;\nexport type WarrantyType = (typeof WarrantyType)[keyof typeof WarrantyType];\n\nexport const WorkflowType = { INTERVENTION_APPROVAL: 'INTERVENTION_APPROVAL', PURCHASE_REQUEST: 'PURCHASE_REQUEST', CAPA_APPROVAL: 'CAPA_APPROVAL', INSPECTION_SIGNOFF: 'INSPECTION_SIGNOFF', FAILURE_INVESTIGATION: 'FAILURE_INVESTIGATION', BUDGET_APPROVAL: 'BUDGET_APPROVAL', RCA_APPROVAL: 'RCA_APPROVAL', EQUIPMENT_DISPOSAL: 'EQUIPMENT_DISPOSAL', ACCESS_REQUEST: 'ACCESS_REQUEST', DOCUMENT_REVIEW: 'DOCUMENT_REVIEW' } as const;\nexport type WorkflowType = (typeof WorkflowType)[keyof typeof WorkflowType];\n","export const ErpType = { SAP_ECC: 'SAP_ECC', SAP_BUSINESS_ONE: 'SAP_BUSINESS_ONE', DYNAMICS_NAV: 'DYNAMICS_NAV', DYNAMICS_AX: 'DYNAMICS_AX', ORACLE_CLOUD: 'ORACLE_CLOUD', ORACLE_EBS: 'ORACLE_EBS', ORACLE_NETSUITE: 'ORACLE_NETSUITE', ORACLE_JDE: 'ORACLE_JDE', INFOR_CLOUDSUITE: 'INFOR_CLOUDSUITE', INFOR_LN: 'INFOR_LN', SAGE_INTACCT: 'SAGE_INTACCT', EPICOR_KINETIC: 'EPICOR_KINETIC', IFS_CLOUD: 'IFS_CLOUD', WORKDAY: 'WORKDAY', ACUMATICA: 'ACUMATICA', ODOO: 'ODOO', CUSTOM: 'CUSTOM', REST_API: 'REST_API', SOAP_API: 'SOAP_API' } as const;\nexport type ErpType = (typeof ErpType)[keyof typeof ErpType];\n\nexport const ErpAuthType = { BASIC: 'BASIC', API_KEY: 'API_KEY', OAUTH2: 'OAUTH2', SAML: 'SAML', CERTIFICATE: 'CERTIFICATE', SAP_JWT: 'SAP_JWT' } as const;\nexport type ErpAuthType = (typeof ErpAuthType)[keyof typeof ErpAuthType];\n\nexport const SyncDirection = { INBOUND: 'INBOUND', OUTBOUND: 'OUTBOUND', BIDIRECTIONAL: 'BIDIRECTIONAL' } as const;\nexport type SyncDirection = (typeof SyncDirection)[keyof typeof SyncDirection];\n\nexport const TgmEntityType = { COMPANY: 'COMPANY', LOCATION: 'LOCATION', UNIT: 'UNIT', COMPONENT: 'COMPONENT', USER: 'USER', INSPECTION: 'INSPECTION', FAILURE: 'FAILURE', INVENTORY: 'INVENTORY', INVOICE: 'INVOICE' } as const;\nexport type TgmEntityType = (typeof TgmEntityType)[keyof typeof TgmEntityType];\n","export const ProviderType = { OIDC: 'OIDC', SAML: 'SAML' } as const;\nexport type ProviderType = (typeof ProviderType)[keyof typeof ProviderType];\n\nexport const PresetProvider = { GOOGLE: 'GOOGLE', AZURE_AD: 'AZURE_AD', OKTA: 'OKTA', ONELOGIN: 'ONELOGIN', PING_IDENTITY: 'PING_IDENTITY', CUSTOM_OIDC: 'CUSTOM_OIDC', CUSTOM_SAML: 'CUSTOM_SAML' } as const;\nexport type PresetProvider = (typeof PresetProvider)[keyof typeof PresetProvider];\n","export const AppLanguage = { EN: 'EN', FR: 'FR', PT: 'PT', DE: 'DE', ES: 'ES' } as const;\nexport type AppLanguage = (typeof AppLanguage)[keyof typeof AppLanguage];\n\nexport const PlatformAdminRole = { SUPER_ADMIN: 'SUPER_ADMIN' } as const;\nexport type PlatformAdminRole = (typeof PlatformAdminRole)[keyof typeof PlatformAdminRole];\n\nexport const ParticipantRole = { OWNER: 'OWNER', ADMIN: 'ADMIN', MEMBER: 'MEMBER' } as const;\nexport type ParticipantRole = (typeof ParticipantRole)[keyof typeof ParticipantRole];\n\nexport const RoleType = { SUPER_ADMIN: 'SUPER_ADMIN', ADMIN: 'ADMIN', MANAGER: 'MANAGER', USER: 'USER' } as const;\nexport type RoleType = (typeof RoleType)[keyof typeof RoleType];\n\nexport const SandboxAccessLevel = { OWNER: 'OWNER', ADMIN: 'ADMIN', USER: 'USER' } as const;\nexport type SandboxAccessLevel = (typeof SandboxAccessLevel)[keyof typeof SandboxAccessLevel];\n","export const CalendarPlanning = { ONE_DAY: 'ONE_DAY', ONE_WEEK: 'ONE_WEEK', ONE_MONTH: 'ONE_MONTH', THREE_MONTHS: 'THREE_MONTHS', SIX_MONTHS: 'SIX_MONTHS', ONE_YEAR: 'ONE_YEAR', TWO_YEARS: 'TWO_YEARS', THREE_YEARS: 'THREE_YEARS', FOUR_YEARS: 'FOUR_YEARS', FIVE_YEARS: 'FIVE_YEARS', SEVEN_YEARS: 'SEVEN_YEARS', TEN_YEARS: 'TEN_YEARS' } as const;\nexport type CalendarPlanning = (typeof CalendarPlanning)[keyof typeof CalendarPlanning];\n\nexport const MeteringParameterSubType = { DAYS: 'DAYS', WEEKS: 'WEEKS', MONTHS: 'MONTHS', YEARS: 'YEARS', HOURLY: 'HOURLY', DAILY: 'DAILY', WEEKLY: 'WEEKLY', MONTHLY: 'MONTHLY', QUARTERLY: 'QUARTERLY', BI_ANNUALLY: 'BI_ANNUALLY', YEARLY: 'YEARLY', CAPITAL: 'CAPITAL' } as const;\nexport type MeteringParameterSubType = (typeof MeteringParameterSubType)[keyof typeof MeteringParameterSubType];\n\nexport const ObligationFrequency = { DAILY: 'DAILY', WEEKLY: 'WEEKLY', MONTHLY: 'MONTHLY', QUARTERLY: 'QUARTERLY', SEMI_ANNUAL: 'SEMI_ANNUAL', ANNUAL: 'ANNUAL', ONE_TIME: 'ONE_TIME' } as const;\nexport type ObligationFrequency = (typeof ObligationFrequency)[keyof typeof ObligationFrequency];\n\nexport const Periodicity = { HOURLY: 'Hourly', DAILY: 'Daily', WEEKLY: 'Weekly', MONTHLY: 'Monthly', QUARTERLY: 'Quarterly', BI_ANNUALLY: 'BiAnnualy', YEARLY: 'Yearly', CAPITAL: 'Capital' } as const;\nexport type Periodicity = (typeof Periodicity)[keyof typeof Periodicity];\n","export const FishboneCategory = { MANPOWER: 'MANPOWER', METHOD: 'METHOD', MACHINE: 'MACHINE', MATERIAL: 'MATERIAL', MEASUREMENT: 'MEASUREMENT', MOTHER_NATURE: 'MOTHER_NATURE', MANAGEMENT: 'MANAGEMENT', MAINTENANCE: 'MAINTENANCE' } as const;\nexport type FishboneCategory = (typeof FishboneCategory)[keyof typeof FishboneCategory];\n\nexport const InspectionLevel = { BASIC: 'Basic', ADVANCED: 'Advanced', COMPLETE: 'Complete' } as const;\nexport type InspectionLevel = (typeof InspectionLevel)[keyof typeof InspectionLevel];\n\nexport const InspectionNature = { PERIODIC: 'Periodic', NON_PERIODIC: 'NonPeriodic' } as const;\nexport type InspectionNature = (typeof InspectionNature)[keyof typeof InspectionNature];\n\nexport const RCAMethodology = { FIVE_WHYS: 'FIVE_WHYS', FISHBONE: 'FISHBONE', FAULT_TREE: 'FAULT_TREE', PARETO: 'PARETO', FMEA: 'FMEA', COMBINED: 'COMBINED' } as const;\nexport type RCAMethodology = (typeof RCAMethodology)[keyof typeof RCAMethodology];\n\nexport const ReasonForInspection = { DUE_TO_EVENT: 'DueToEvent', MAINTENANCE: 'Maintenance', DUE_TO_MAINTENANCE: 'dueToMaintenance', CONDITION_ASSESSMENT: 'ConditionAssessment', DUE_TO_INSPECTION: 'DueToInspection', DUE_TO_INTERVENTION_REQUEST: 'DueToInterventionRequest', SAFETY_PROGRAM_INSPECTIONS: 'safetyProgramInspections', WORK_REQUIRE_MANAGEMENT: 'workRequireManagement', PREV_AND_PRED_MAINTENANCE: 'prevAndPredMaintenance', AUDITS: 'audits', OTHERS: 'Others' } as const;\nexport type ReasonForInspection = (typeof ReasonForInspection)[keyof typeof ReasonForInspection];\n\nexport const ReasonForIntervention = { DUE_TO_MAINTENANCE: 'dueToMaintenance', DUE_TO_EVENT: 'dueToEvent', DUE_TO_INTERVENTION_REQUEST: 'dueToInterventionRequest', OPERATOR_OBS_AND_EMPLOYEE_CONCERNS: 'operatorObsAndEmployeeConcerns', PREV_AND_PRED_MAINTENANCE: 'prevAndPredMaintenance', POINTS_RAISED: 'pointsRaised', SAFETY_PROGRAM_INSPECTIONS: 'safetyProgramInspections', WORK_REQUIRE_MANAGEMENT: 'workRequireManagement', REGULATORY_REQUIREMENTS: 'regulatoryRequirements', EQUIPMENT_IMPROVEMENTS: 'equipementImprovements', AUDITS: 'audits', INCIDENTS_DAMAGES: 'incidentsDamages', OTHERS: 'others' } as const;\nexport type ReasonForIntervention = (typeof ReasonForIntervention)[keyof typeof ReasonForIntervention];\n","export const DeploymentType = { CLOUD: 'CLOUD', ON_PREMISE: 'ON_PREMISE', HYBRID: 'HYBRID' } as const;\nexport type DeploymentType = (typeof DeploymentType)[keyof typeof DeploymentType];\n\nexport const DepreciationMethod = { STRAIGHT_LINE: 'STRAIGHT_LINE', DECLINING_BALANCE: 'DECLINING_BALANCE', DOUBLE_DECLINING: 'DOUBLE_DECLINING', SUM_OF_YEARS: 'SUM_OF_YEARS', UNITS_OF_PRODUCTION: 'UNITS_OF_PRODUCTION' } as const;\nexport type DepreciationMethod = (typeof DepreciationMethod)[keyof typeof DepreciationMethod];\n\nexport const MeasurementUnitSystem = { METRIC: 'METRIC', IMPERIAL: 'IMPERIAL' } as const;\nexport type MeasurementUnitSystem = (typeof MeasurementUnitSystem)[keyof typeof MeasurementUnitSystem];\n\nexport const OperatingMode = { SPEED_NO_LOAD: 'speedNoLoad', CONDENSING_MODE: 'condensingMode', STAND_STILL: 'standStill', PARTLY_DISMANTLED: 'partlyDismantled', COMPLETELY_DISMANTLED: 'completelyDismantled', LOAD_GEN_OR_PUMP: 'loadGenOrPump', OUT_OF_PIT: 'outOfPit' } as const;\nexport type OperatingMode = (typeof OperatingMode)[keyof typeof OperatingMode];\n\nexport const PlantSize = { SMALL: 'Small', MEDIUM: 'Medium', LARGE: 'Large' } as const;\nexport type PlantSize = (typeof PlantSize)[keyof typeof PlantSize];\n\nexport const Region = { ALL: 'ALL', AFRICA: 'AFRICA', ASIA_AND_OCEANIA: 'ASIA_AND_OCEANIA', EUROPE: 'EUROPE', LATIN_AMERICA: 'LATIN_AMERICA', NORTH_AMERICA: 'NORTH_AMERICA' } as const;\nexport type Region = (typeof Region)[keyof typeof Region];\n\nexport const WaterLevel = { WATERED: 'Watered', DEWATERED: 'Dewatered', FULL: 'Full' } as const;\nexport type WaterLevel = (typeof WaterLevel)[keyof typeof WaterLevel];\n","export const GateType = { INTAKE: 'INTAKE', SPILLWAY: 'SPILLWAY', OUTLET: 'OUTLET', EMERGENCY: 'EMERGENCY' } as const;\nexport type GateType = (typeof GateType)[keyof typeof GateType];\n\nexport const GateControlType = { MANUAL: 'MANUAL', HYDRAULIC: 'HYDRAULIC', ELECTRIC: 'ELECTRIC' } as const;\nexport type GateControlType = (typeof GateControlType)[keyof typeof GateControlType];\n\nexport const SampleType = { WATER_QUALITY: 'WATER_QUALITY', SEDIMENT: 'SEDIMENT', BIOLOGICAL: 'BIOLOGICAL' } as const;\nexport type SampleType = (typeof SampleType)[keyof typeof SampleType];\n\nexport const VerificationStatus = { UNVERIFIED: 'UNVERIFIED', VERIFIED: 'VERIFIED', DISCREPANCY_NOTED: 'DISCREPANCY_NOTED' } as const;\nexport type VerificationStatus = (typeof VerificationStatus)[keyof typeof VerificationStatus];\n\nexport const ObservationCategory = { WEATHER: 'WEATHER', EQUIPMENT_BEHAVIOR: 'EQUIPMENT_BEHAVIOR', WATER_QUALITY: 'WATER_QUALITY', WILDLIFE: 'WILDLIFE', SAFETY: 'SAFETY', OTHER: 'OTHER' } as const;\nexport type ObservationCategory = (typeof ObservationCategory)[keyof typeof ObservationCategory];\n\nexport const ObservationSeverity = { INFORMATIONAL: 'INFORMATIONAL', ATTENTION_REQUIRED: 'ATTENTION_REQUIRED', URGENT: 'URGENT' } as const;\nexport type ObservationSeverity = (typeof ObservationSeverity)[keyof typeof ObservationSeverity];\n\nexport const SurveyMethod = { MULTIBEAM_SONAR: 'MULTIBEAM_SONAR', SINGLE_BEAM: 'SINGLE_BEAM', LIDAR: 'LIDAR', GPS: 'GPS' } as const;\nexport type SurveyMethod = (typeof SurveyMethod)[keyof typeof SurveyMethod];\n\nexport const AIScenarioType = { GRID_REQUEST: 'GRID_REQUEST', WATER_PRESERVATION: 'WATER_PRESERVATION', OEM_RECOMMENDATIONS: 'OEM_RECOMMENDATIONS' } as const;\nexport type AIScenarioType = (typeof AIScenarioType)[keyof typeof AIScenarioType];\n\nexport const RegulatoryUpdateType = { PERMIT_RENEWAL: 'PERMIT_RENEWAL', COMPLIANCE_REPORT: 'COMPLIANCE_REPORT', INSPECTION_REQUIRED: 'INSPECTION_REQUIRED', VIOLATION_NOTICE: 'VIOLATION_NOTICE' } as const;\nexport type RegulatoryUpdateType = (typeof RegulatoryUpdateType)[keyof typeof RegulatoryUpdateType];\n\nexport const MonitoringMethod = { VIDEO_COUNT: 'VIDEO_COUNT', PHYSICAL_COUNT: 'PHYSICAL_COUNT', ACOUSTIC_TAG: 'ACOUSTIC_TAG' } as const;\nexport type MonitoringMethod = (typeof MonitoringMethod)[keyof typeof MonitoringMethod];\n\nexport const MonitoringLocationType = { FISH_LADDER: 'FISH_LADDER', TRAP: 'TRAP', SONAR: 'SONAR' } as const;\nexport type MonitoringLocationType = (typeof MonitoringLocationType)[keyof typeof MonitoringLocationType];\n\nexport const ReadingType = { WATER_LEVEL: 'WATER_LEVEL', FLOW: 'FLOW', GATE_POSITION: 'GATE_POSITION', PRESSURE: 'PRESSURE', TEMPERATURE: 'TEMPERATURE' } as const;\nexport type ReadingType = (typeof ReadingType)[keyof typeof ReadingType];\n","export const GeofenceType = { CIRCLE: 'CIRCLE', POLYGON: 'POLYGON' } as const;\nexport type GeofenceType = (typeof GeofenceType)[keyof typeof GeofenceType];\n\nexport const GeofenceEventType = { ENTER: 'ENTER', EXIT: 'EXIT' } as const;\nexport type GeofenceEventType = (typeof GeofenceEventType)[keyof typeof GeofenceEventType];\n\nexport const Priority = { P1: 'P1', P2: 'P2', P3: 'P3', P4: 'P4', P5: 'P5' } as const;\nexport type Priority = (typeof Priority)[keyof typeof Priority];\n\nexport const ProvisioningStep = { CREATING_DATABASE: 'CREATING_DATABASE', CREATING_USER: 'CREATING_USER', GRANTING_PRIVILEGES: 'GRANTING_PRIVILEGES', RUNNING_MIGRATIONS: 'RUNNING_MIGRATIONS', REGISTERING_DATASOURCE: 'REGISTERING_DATASOURCE', CREATING_MESSAGE_QUEUES: 'CREATING_MESSAGE_QUEUES', CREATING_TIMESERIES_BUCKET: 'CREATING_TIMESERIES_BUCKET', CREATING_STORAGE_BUCKET: 'CREATING_STORAGE_BUCKET', CONFIGURING_CACHE: 'CONFIGURING_CACHE', GENERATING_LICENSE: 'GENERATING_LICENSE', INSTALLING_LICENSE: 'INSTALLING_LICENSE' } as const;\nexport type ProvisioningStep = (typeof ProvisioningStep)[keyof typeof ProvisioningStep];\n\nexport const SubscriptionPlan = { FREE: 'FREE', STARTER: 'STARTER', PROFESSIONAL: 'PROFESSIONAL', ENTERPRISE: 'ENTERPRISE', CUSTOM: 'CUSTOM' } as const;\nexport type SubscriptionPlan = (typeof SubscriptionPlan)[keyof typeof SubscriptionPlan];\n\nexport const TicketPriority = { LOW: 'LOW', MEDIUM: 'MEDIUM', HIGH: 'HIGH', CRITICAL: 'CRITICAL' } as const;\nexport type TicketPriority = (typeof TicketPriority)[keyof typeof TicketPriority];\n\nexport const TrackedEntityType = { TECHNICIAN: 'TECHNICIAN', VEHICLE: 'VEHICLE', ASSET: 'ASSET', EQUIPMENT: 'EQUIPMENT' } as const;\nexport type TrackedEntityType = (typeof TrackedEntityType)[keyof typeof TrackedEntityType];\n\nexport const YesNo = { YES: 'yes', NO: 'no', NOT_EXACTLY: 'NotExactly' } as const;\nexport type YesNo = (typeof YesNo)[keyof typeof YesNo];\n\nexport const EmailProviderType = { SENDGRID: 'SENDGRID', SMTP: 'SMTP', MAILGUN: 'MAILGUN', AWS_SES: 'AWS_SES', POSTMARK: 'POSTMARK', MAILJET: 'MAILJET', RESEND: 'RESEND' } as const;\nexport type EmailProviderType = (typeof EmailProviderType)[keyof typeof EmailProviderType];\n\nexport const MessageChannel = { SMS: 'SMS', WHATSAPP: 'WHATSAPP', TELEGRAM: 'TELEGRAM', SIGNAL: 'SIGNAL', VIBER: 'VIBER', FACEBOOK_MESSENGER: 'FACEBOOK_MESSENGER', SLACK: 'SLACK', DISCORD: 'DISCORD' } as const;\nexport type MessageChannel = (typeof MessageChannel)[keyof typeof MessageChannel];\n\nexport const MessagingProviderType = { TWILIO: 'TWILIO', VONAGE: 'VONAGE', AWS_SNS: 'AWS_SNS', PLIVO: 'PLIVO', MESSAGEBIRD: 'MESSAGEBIRD', SINCH: 'SINCH', CLICKSEND: 'CLICKSEND', INFOBIP: 'INFOBIP', META_WHATSAPP: 'META_WHATSAPP', TELEGRAM_BOT: 'TELEGRAM_BOT', SLACK_API: 'SLACK_API', DISCORD_BOT: 'DISCORD_BOT' } as const;\nexport type MessagingProviderType = (typeof MessagingProviderType)[keyof typeof MessagingProviderType];\n\nexport const ExtensionEventType = { REGISTERED: 'REGISTERED', ENABLED: 'ENABLED', DISABLED: 'DISABLED', CONFIGURED: 'CONFIGURED', HOOK_EXECUTED: 'HOOK_EXECUTED', TASK_EXECUTED: 'TASK_EXECUTED', API_CALLED: 'API_CALLED', ERROR: 'ERROR' } as const;\nexport type ExtensionEventType = (typeof ExtensionEventType)[keyof typeof ExtensionEventType];\n\nexport const TaskRunStatus = { SUCCESS: 'SUCCESS', FAILED: 'FAILED', RUNNING: 'RUNNING' } as const;\nexport type TaskRunStatus = (typeof TaskRunStatus)[keyof typeof TaskRunStatus];\n\nexport const AiProvider = { OPENAI: 'OPENAI', GEMINI: 'GEMINI', ANTHROPIC: 'ANTHROPIC', MISTRAL: 'MISTRAL', COHERE: 'COHERE', LOCAL: 'LOCAL' } as const;\nexport type AiProvider = (typeof AiProvider)[keyof typeof AiProvider];\n\nexport const VideoCallType = { DIRECT: 'DIRECT', GROUP: 'GROUP', CONFERENCE: 'CONFERENCE' } as const;\nexport type VideoCallType = (typeof VideoCallType)[keyof typeof VideoCallType];\n\nexport const VideoCallStatus = { INITIATED: 'INITIATED', RINGING: 'RINGING', ACTIVE: 'ACTIVE', ENDED: 'ENDED', MISSED: 'MISSED', DECLINED: 'DECLINED' } as const;\nexport type VideoCallStatus = (typeof VideoCallStatus)[keyof typeof VideoCallStatus];\n\nexport const VideoParticipantRole = { HOST: 'HOST', PARTICIPANT: 'PARTICIPANT', VIEWER: 'VIEWER' } as const;\nexport type VideoParticipantRole = (typeof VideoParticipantRole)[keyof typeof VideoParticipantRole];\n\nexport const VideoParticipantStatus = { INVITED: 'INVITED', RINGING: 'RINGING', CONNECTED: 'CONNECTED', DISCONNECTED: 'DISCONNECTED', DECLINED: 'DECLINED' } as const;\nexport type VideoParticipantStatus = (typeof VideoParticipantStatus)[keyof typeof VideoParticipantStatus];\n","// ==================== Condition Assessment Test Enums ====================\n\nexport const CatComponentType = { UNIT_COMPONENT: 'UnitComponent', COMMON_COMPONENT: 'CommonComponent' } as const;\nexport type CatComponentType = (typeof CatComponentType)[keyof typeof CatComponentType];\n\nexport const CatTestTrigger = { ROUTINE: 'Routine', POST_INCIDENT: 'PostIncident', POST_REPAIR: 'PostRepair', REGULATORY: 'Regulatory', INSURANCE: 'Insurance', ANOMALY: 'Anomaly', PREDICTIVE: 'Predictive' } as const;\nexport type CatTestTrigger = (typeof CatTestTrigger)[keyof typeof CatTestTrigger];\n\nexport const CatTypeOfTest = { ELECTRICAL_TEST: 'ElectricalTest', OIL_ANALYSIS: 'OilAnalysis', VIBRATION_ANALYSIS: 'VibrationAnalysis', LUBRIFICATION: 'Lubrification', ULTRASOUND: 'Ultrasound', THERMOGRAPHY: 'Thermography', OTHER: 'Other' } as const;\nexport type CatTypeOfTest = (typeof CatTypeOfTest)[keyof typeof CatTypeOfTest];\n\nexport const CatWhereDone = { ON_SITE: 'OnSite', OFF_SITE: 'OffSite', LABORATORY: 'Laboratory' } as const;\nexport type CatWhereDone = (typeof CatWhereDone)[keyof typeof CatWhereDone];\n\nexport const CatDoneBy = { INTERNAL: 'Internal', CONTRACTOR: 'Contractor', LAB: 'Lab' } as const;\nexport type CatDoneBy = (typeof CatDoneBy)[keyof typeof CatDoneBy];\n\nexport const CatStatus = { PENDING: 'Pending', DRAFT: 'Draft', PLANNED: 'Planned', SCHEDULED: 'Scheduled', ASSIGNED: 'Assigned', IN_PROGRESS: 'InProgress', DONE: 'Done', CANCELLED: 'Cancelled' } as const;\nexport type CatStatus = (typeof CatStatus)[keyof typeof CatStatus];\n\nexport const CatMachineCondition = { RUNNING: 'Running', STANDBY: 'Standby', SHUTDOWN: 'Shutdown', POST_OVERHAUL: 'PostOverhaul', COMMISSIONED: 'Commissioned' } as const;\nexport type CatMachineCondition = (typeof CatMachineCondition)[keyof typeof CatMachineCondition];\n\nexport const CatTestResult = { PASS: 'Pass', MARGINAL: 'Marginal', FAIL: 'Fail' } as const;\nexport type CatTestResult = (typeof CatTestResult)[keyof typeof CatTestResult];\n\nexport const CatTrendVsPrevious = { IMPROVED: 'Improved', STABLE: 'Stable', DEGRADED: 'Degraded' } as const;\nexport type CatTrendVsPrevious = (typeof CatTrendVsPrevious)[keyof typeof CatTrendVsPrevious];\n\nexport const CatRecommendedAction = { NO_ACTION: 'NoAction', MONITOR: 'Monitor', SCHEDULE_REPAIR: 'ScheduleRepair', IMMEDIATE_REPAIR: 'ImmediateRepair', DECOMMISSION: 'Decommission' } as const;\nexport type CatRecommendedAction = (typeof CatRecommendedAction)[keyof typeof CatRecommendedAction];\n\nexport const CatOutageType = { PLANNED: 'Planned', FORCED: 'Forced', OPPORTUNISTIC: 'Opportunistic' } as const;\nexport type CatOutageType = (typeof CatOutageType)[keyof typeof CatOutageType];\n\nexport const CatEquipmentOwner = { COMPANY: 'Company', RENTAL: 'Rental', CONTRACTOR: 'Contractor' } as const;\nexport type CatEquipmentOwner = (typeof CatEquipmentOwner)[keyof typeof CatEquipmentOwner];\n\nexport const CatSignOffRole = { PERFORMED_BY: 'PerformedBy', REVIEWED_BY: 'ReviewedBy', APPROVED_BY: 'ApprovedBy', WITNESS: 'Witness' } as const;\nexport type CatSignOffRole = (typeof CatSignOffRole)[keyof typeof CatSignOffRole];\n\nexport const CatAttachmentCategory = { TEST_REPORT: 'TestReport', OSCILLOGRAM: 'Oscillogram', THERMAL_IMAGE: 'ThermalImage', VIBRATION_SPECTRA: 'VibrationSpectra', CALIBRATION_CERT: 'CalibrationCert', PERMIT: 'Permit', PHOTO: 'Photo', OTHER: 'Other' } as const;\nexport type CatAttachmentCategory = (typeof CatAttachmentCategory)[keyof typeof CatAttachmentCategory];\n\nexport const CatAttachmentPhase = { PLANNING: 'Planning', SCHEDULING: 'Scheduling', ASSIGNING: 'Assigning', EXECUTION: 'Execution', GENERAL: 'General' } as const;\nexport type CatAttachmentPhase = (typeof CatAttachmentPhase)[keyof typeof CatAttachmentPhase];\n","export const WorkPermitCategory = {\n PC1: 'PC1', PC2: 'PC2', PC2B: 'PC2B',\n PC11: 'PC11', PC14: 'PC14', PC17: 'PC17'\n} as const;\nexport type WorkPermitCategory = (typeof WorkPermitCategory)[keyof typeof WorkPermitCategory];\n\nexport const WorkPermitStatus = {\n DRAFT: 'DRAFT', ISSUED: 'ISSUED', APPROVED: 'APPROVED',\n REJECTED: 'REJECTED', ACTIVE: 'ACTIVE', SURRENDERED: 'SURRENDERED',\n EXPIRED: 'EXPIRED', COMPLETED: 'COMPLETED', CANCELLED: 'CANCELLED'\n} as const;\nexport type WorkPermitStatus = (typeof WorkPermitStatus)[keyof typeof WorkPermitStatus];\n\nexport const PC2PermitSubType = {\n WORK_PERMIT: 'WORK_PERMIT',\n WORK_AND_TEST_PERMIT: 'WORK_AND_TEST_PERMIT',\n STATION_GUARANTEE: 'STATION_GUARANTEE'\n} as const;\nexport type PC2PermitSubType = (typeof PC2PermitSubType)[keyof typeof PC2PermitSubType];\n\nexport const WorkOrderSourceType = {\n INTERVENTION: 'INTERVENTION',\n INSPECTION: 'INSPECTION',\n WORK_ORDER_REQUEST: 'WORK_ORDER_REQUEST'\n} as const;\nexport type WorkOrderSourceType = (typeof WorkOrderSourceType)[keyof typeof WorkOrderSourceType];\n\nexport const PermitOrigin = {\n INTERNAL: 'INTERNAL', EXTERNAL: 'EXTERNAL'\n} as const;\nexport type PermitOrigin = (typeof PermitOrigin)[keyof typeof PermitOrigin];\n\nexport const ActivePermitHolder = {\n PRIMARY: 'PRIMARY', ALTERNATE: 'ALTERNATE'\n} as const;\nexport type ActivePermitHolder = (typeof ActivePermitHolder)[keyof typeof ActivePermitHolder];\n\nexport const EnergySourceType = {\n ELECTRICAL_HV: 'ELECTRICAL_HV', ELECTRICAL_LV: 'ELECTRICAL_LV',\n HYDRAULIC: 'HYDRAULIC', MECHANICAL: 'MECHANICAL',\n PNEUMATIC: 'PNEUMATIC', THERMAL: 'THERMAL',\n GRAVITY: 'GRAVITY', CHEMICAL: 'CHEMICAL',\n PRESSURE: 'PRESSURE', STORED_ENERGY: 'STORED_ENERGY'\n} as const;\nexport type EnergySourceType = (typeof EnergySourceType)[keyof typeof EnergySourceType];\n","export const LOTOBoxType = {\n LOCKOUT: 'LOCKOUT', TAGOUT: 'TAGOUT', LOCKOUT_TAGOUT: 'LOCKOUT_TAGOUT'\n} as const;\nexport type LOTOBoxType = (typeof LOTOBoxType)[keyof typeof LOTOBoxType];\n\nexport const LOTOBoxStatus = {\n PENDING: 'PENDING', APPLIED: 'APPLIED',\n ZERO_ENERGY_VERIFIED: 'ZERO_ENERGY_VERIFIED', RELEASED: 'RELEASED'\n} as const;\nexport type LOTOBoxStatus = (typeof LOTOBoxStatus)[keyof typeof LOTOBoxStatus];\n\nexport const LOTOLockType = {\n PERSONAL_PADLOCK: 'PERSONAL_PADLOCK',\n BREAKER_LOCKOUT_DEVICE: 'BREAKER_LOCKOUT_DEVICE',\n VALVE_LOCKOUT_DEVICE: 'VALVE_LOCKOUT_DEVICE',\n HASP: 'HASP', CABLE_LOCKOUT: 'CABLE_LOCKOUT', TAG_ONLY: 'TAG_ONLY'\n} as const;\nexport type LOTOLockType = (typeof LOTOLockType)[keyof typeof LOTOLockType];\n\nexport const LOTOLockStatus = {\n APPLIED: 'APPLIED', REMOVED: 'REMOVED'\n} as const;\nexport type LOTOLockStatus = (typeof LOTOLockStatus)[keyof typeof LOTOLockStatus];\n\nexport const LOTOOverallStatus = {\n PENDING: 'PENDING', ACTIVE: 'ACTIVE',\n PARTIAL_RELEASED: 'PARTIAL_RELEASED', FULLY_RELEASED: 'FULLY_RELEASED'\n} as const;\nexport type LOTOOverallStatus = (typeof LOTOOverallStatus)[keyof typeof LOTOOverallStatus];\n\nexport const LOTOLockRole = {\n PERMIT_HOLDER: 'PERMIT_HOLDER', WORKER: 'WORKER',\n VERIFIER: 'VERIFIER', SUPERVISOR: 'SUPERVISOR'\n} as const;\nexport type LOTOLockRole = (typeof LOTOLockRole)[keyof typeof LOTOLockRole];\n","export const RcaEventCause = {\n MAJOR_BREAKDOWNS: 'majorBreakdowns',\n REPEATED_FAILURES: 'repeatedFailures',\n NONCOMPLIANCE_WITH_PROCEDURES: 'noncomplianceWithProcedures',\n SSE_INCIDENT: 'sseIncident',\n OTHER: 'other'\n} as const;\nexport type RcaEventCause = (typeof RcaEventCause)[keyof typeof RcaEventCause];\n\nexport const RcaWorkOrderType = {\n INTERVENTION: 'intervention',\n MAINTENANCE: 'maintenance'\n} as const;\nexport type RcaWorkOrderType = (typeof RcaWorkOrderType)[keyof typeof RcaWorkOrderType];\n\nexport const LessonLearnedStatus = {\n IN_PROGRESS: 'inProgress',\n COMPLETED: 'completed',\n REVIEWED_AND_APPROVED: 'reviewedAndApproved',\n CLOSED: 'closed'\n} as const;\nexport type LessonLearnedStatus = (typeof LessonLearnedStatus)[keyof typeof LessonLearnedStatus];\n\nexport const LessonLearnedOrigin = {\n WORK_ORDER: 'WORK_ORDER',\n ROOT_CAUSE_ANALYSIS: 'ROOT_CAUSE_ANALYSIS'\n} as const;\nexport type LessonLearnedOrigin = (typeof LessonLearnedOrigin)[keyof typeof LessonLearnedOrigin];\n","/**\n * Real-time event models for entity CRUD changes and dynamic queue messages.\n *\n * Entity changes are broadcast when any entity is created, updated, or deleted\n * via the API. Dynamic queue messages are broadcast when a RabbitMQ queue message\n * is successfully processed by a handler.\n */\n\n// ─── Entity Change Events ──────────────────────────────────────────\n\nexport type EntityAction = 'created' | 'updated' | 'deleted';\n\n/**\n * Event broadcast when an entity is created, updated, or deleted.\n *\n * Subscribe to:\n * /topic/entities — all entity changes (firehose)\n * /topic/entities/{resourceName} — changes for a specific resource\n *\n * @template T The entity type (defaults to any)\n */\nexport interface EntityChangeEvent<T = any> {\n /** API resource name (plural) — e.g. 'inspections', 'units', 'interventions' */\n resourceName: string;\n\n /** The CRUD action that triggered this event */\n action: EntityAction;\n\n /** The entity ID */\n entityId: number;\n\n /** ISO timestamp of when the event was broadcast */\n timestamp: string;\n\n /** Full entity object on create/update. null on delete. */\n data: T | null;\n}\n\n// ─── Dynamic Queue Message Events ──────────────────────────────────\n\n/** Handler types for dynamic queue message processing */\nexport type QueueHandlerType = 'generic' | 'iot' | 'notification' | 'erp' | 'webhook' | string;\n\n/**\n * Event broadcast when a dynamic queue message is successfully processed.\n *\n * Subscribe to:\n * /topic/queues — all queue messages (firehose)\n * /topic/queues/{queueName} — messages from a specific queue\n *\n * @template T The payload type (defaults to any)\n */\nexport interface QueueMessageEvent<T = any> {\n /** The RabbitMQ queue name — e.g. 'tgm_iot', 'my_alerts_queue' */\n queueName: string;\n\n /** Handler that processed the message — e.g. 'generic', 'iot', 'notification' */\n handlerType: QueueHandlerType;\n\n /** The RabbitMQ routing key the message was published with */\n routingKey: string;\n\n /** ISO timestamp of when the message was broadcast */\n timestamp: string;\n\n /** The original message payload from RabbitMQ */\n payload: T | null;\n}\n\n/**\n * Wrapper for the firehose /topic/queues destination.\n * Contains the queue name and the full message event.\n */\nexport interface QueueMessageFirehoseEvent<T = any> {\n queueName: string;\n data: QueueMessageEvent<T>;\n}\n\n// ─── IoT Events ────────────────────────────────────────────────────\n\n/**\n * IoT sensor event broadcast on /topic/iot-event.\n */\nexport interface IoTEvent {\n type: 'iot';\n sensorId?: number;\n unitId?: number;\n value?: number;\n alertLevel?: 'normal' | 'warning' | 'critical';\n timestamp?: string;\n clientId?: string;\n sandbox?: string;\n [key: string]: any;\n}\n\n// ─── Notification Events ───────────────────────────────────────────\n\n/**\n * User notification delivered on /user/queue/notifications.\n */\nexport interface NotificationEvent {\n type: 'notification';\n userId?: number;\n title?: string;\n message?: string;\n link?: string;\n priority?: string;\n [key: string]: any;\n}\n\n// ─── Calendar Events ───────────────────────────────────────────────\n\n/**\n * Calendar update delivered on /user/queue/calendar.\n */\nexport interface CalendarUpdateEvent {\n action: string;\n entityType: string;\n entityId: number;\n timestamp: string;\n}\n","// ─── Reservoir WebSocket Message Types ────────────────────────────────\n//\n// Strongly typed message shapes for the 4 STOMP topics:\n// /topic/reservoir/{id}/sensors\n// /topic/reservoir/{id}/external\n// /topic/reservoir/{id}/manual\n// /topic/reservoir/{id}/status\n//\n// These match the Jackson DTOs on the Java backend:\n// ReservoirSensorMessageDto, ReservoirBulkSensorMessageDto,\n// ReservoirExternalMessageDto, ReservoirManualMessageDto,\n// ReservoirStatusMessageDto.\n\n// ─── Sensor Messages ─────────────────────────────────────────────────\n\nexport type SensorDisplayStatus = 'normal' | 'warning' | 'critical';\n\nexport interface SensorDisplayInfo {\n status: SensorDisplayStatus;\n formattedValue: string;\n}\n\n/** Single sensor reading emitted on the sensors topic. */\nexport interface ReservoirSensorMessage {\n sensorId: string;\n value: number;\n unit: string;\n timestamp: string;\n display: SensorDisplayInfo;\n}\n\n/** Bulk synchronized message containing multiple sensor readings at the same timestamp. */\nexport interface ReservoirBulkSensorMessage {\n timestamp: string;\n readings: ReservoirSensorMessage[];\n}\n\n/** Union type — what the `sensors$` observable emits. */\nexport type ReservoirSensorEvent = ReservoirSensorMessage | ReservoirBulkSensorMessage;\n\n/** Type guard: check if a sensor event is a bulk message. */\nexport function isBulkSensorMessage(msg: ReservoirSensorEvent): msg is ReservoirBulkSensorMessage {\n return 'readings' in msg && Array.isArray((msg as ReservoirBulkSensorMessage).readings);\n}\n\n// ─── External Data Messages ──────────────────────────────────────────\n\nexport type ExternalDataType =\n | 'WEATHER'\n | 'GRID_MARKET'\n | 'LABORATORY'\n | 'FISH_MONITORING'\n | 'REGULATORY_UPDATE';\n\n/** External data message emitted on the external topic. */\nexport interface ReservoirExternalMessage {\n dataType: ExternalDataType;\n reservoirId: string;\n timestamp: string;\n data: unknown;\n}\n\n// ─── Manual Data Messages ────────────────────────────────────────────\n\nexport type ManualDataType =\n | 'MANUAL_READING'\n | 'INSPECTION'\n | 'OBSERVATION';\n\n/** Manual data message emitted on the manual topic. */\nexport interface ReservoirManualMessage {\n dataType: ManualDataType;\n reservoirId: string;\n timestamp: string;\n data: unknown;\n}\n\n// ─── Status / Alert Messages ─────────────────────────────────────────\n\nexport type StatusDataType = 'ALERT' | 'SYSTEM_EVENT';\n\nexport type StatusEventType =\n | 'GATE_OPERATION'\n | 'ALERT_TRIGGERED'\n | 'ALERT_ACKNOWLEDGED'\n | 'ALERT_CLEARED'\n | string; // extensible for future event types\n\n/** Status/alert message emitted on the status topic. */\nexport interface ReservoirStatusMessage {\n dataType: StatusDataType;\n type: StatusEventType;\n reservoirId: string;\n timestamp: string;\n data: unknown;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject, tap, map } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport {\n LoginRequest,\n BadgePinLoginRequest,\n RegisterRequest,\n ForgotPasswordRequest,\n ResetPasswordRequest,\n AuthResponse,\n UserDto,\n} from '../../models/auth/login.models';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthService {\n private currentUser$ = new BehaviorSubject<UserDto | null>(null);\n private authenticated$ = new BehaviorSubject<boolean>(false);\n\n readonly user$ = this.currentUser$.asObservable();\n readonly isAuthenticated$ = this.authenticated$.asObservable();\n\n constructor(private http: TgmHttpClient) {}\n\n login(credentials: LoginRequest): Observable<AuthResponse> {\n return this.http.post<AuthResponse>('/auth/local', credentials, { skipAuth: true }).pipe(\n tap((res) => this.handleAuthResponse(res))\n );\n }\n\n badgeLogin(credentials: BadgePinLoginRequest): Observable<AuthResponse> {\n return this.http.post<AuthResponse>('/auth/badge', credentials, { skipAuth: true }).pipe(\n tap((res) => this.handleAuthResponse(res))\n );\n }\n\n register(data: RegisterRequest): Observable<AuthResponse> {\n return this.http.post<AuthResponse>('/auth/local/register', data, { skipAuth: true }).pipe(\n tap((res) => this.handleAuthResponse(res))\n );\n }\n\n forgotPassword(data: ForgotPasswordRequest): Observable<any> {\n return this.http.post('/auth/forgot-password', data, { skipAuth: true });\n }\n\n resetPassword(data: ResetPasswordRequest): Observable<any> {\n return this.http.post('/auth/reset-password', data, { skipAuth: true });\n }\n\n refreshToken(): Observable<AuthResponse> {\n const refreshToken = this.http.getRefreshToken();\n return this.http.post<AuthResponse>('/auth/refresh-token', null, {\n skipAuth: true,\n params: { refreshToken: refreshToken ?? '' },\n }).pipe(\n tap((res) => this.handleAuthResponse(res))\n );\n }\n\n getCurrentUser(): Observable<AuthResponse> {\n return this.http.get<AuthResponse>('/auth/me').pipe(\n tap((res) => {\n if (res.user) {\n this.currentUser$.next(res.user);\n }\n })\n );\n }\n\n logout(): void {\n this.http.clearTokens();\n this.currentUser$.next(null);\n this.authenticated$.next(false);\n }\n\n getToken(): string | null {\n return this.http.getToken();\n }\n\n isAuthenticated(): boolean {\n return this.authenticated$.value;\n }\n\n getUser(): UserDto | null {\n return this.currentUser$.value;\n }\n\n getAnnouncements(): Observable<any[]> {\n return this.http.get<any[]>('/auth/announcements', { skipAuth: true });\n }\n\n getSandboxes(): Observable<any[]> {\n return this.http.get<any[]>('/auth/sandboxes', { skipAuth: true });\n }\n\n getSandboxesByEmail(email: string): Observable<any[]> {\n return this.http.get<any[]>('/auth/sandboxes/by-email', { skipAuth: true, params: { email } });\n }\n\n sendVerificationEmail(): Observable<any> {\n return this.http.post('/auth/send-verification');\n }\n\n verifyEmail(token: string): Observable<any> {\n return this.http.get('/auth/verify-email', { skipAuth: true, params: { token } });\n }\n\n validateInviteToken(token: string): Observable<any> {\n return this.http.get('/auth/accept-invite', { skipAuth: true, params: { token } });\n }\n\n acceptInvite(data: any): Observable<AuthResponse> {\n return this.http.post<AuthResponse>('/auth/accept-invite', data, { skipAuth: true }).pipe(\n tap((res) => this.handleAuthResponse(res))\n );\n }\n\n private handleAuthResponse(res: AuthResponse): void {\n if (res.jwt) {\n this.http.setToken(res.jwt);\n }\n if (res.refreshToken) {\n this.http.setRefreshToken(res.refreshToken);\n }\n if (res.user) {\n this.currentUser$.next(res.user);\n this.authenticated$.next(true);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport {\n SsoLoginRequest,\n SsoCallbackRequest,\n SamlCallbackRequest,\n LinkAccountRequest,\n SsoAuthorizationResponse,\n SsoProviderListResponse,\n LinkedAccountResponse,\n IdentityProviderResponse,\n} from '../../models/auth/sso.models';\nimport { AuthResponse } from '../../models/auth/login.models';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SsoAuthService {\n constructor(private http: TgmHttpClient) {}\n\n getProviders(): Observable<SsoProviderListResponse> {\n return this.http.get<SsoProviderListResponse>('/auth/sso/providers', { skipAuth: true });\n }\n\n authorize(request: SsoLoginRequest): Observable<SsoAuthorizationResponse> {\n return this.http.post<SsoAuthorizationResponse>('/auth/sso/authorize', request, { skipAuth: true });\n }\n\n handleCallback(providerId: number, params: SsoCallbackRequest): Observable<AuthResponse> {\n return this.http.get<AuthResponse>(`/auth/sso/callback/${providerId}`, {\n skipAuth: true,\n params: params as any,\n });\n }\n\n handleSamlCallback(data: SamlCallbackRequest): Observable<AuthResponse> {\n return this.http.post<AuthResponse>('/auth/sso/saml/acs', data, { skipAuth: true });\n }\n\n getSamlMetadata(): Observable<string> {\n return this.http.get<string>('/auth/sso/saml/metadata', { skipAuth: true, responseType: 'text' as any });\n }\n\n linkAccount(request: LinkAccountRequest): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>('/auth/sso/link', request);\n }\n\n unlinkAccount(providerId: number): Observable<ApiResponse<any>> {\n return this.http.delete<ApiResponse<any>>(`/auth/sso/link/${providerId}`);\n }\n\n getLinkedAccounts(): Observable<LinkedAccountResponse[]> {\n return this.http.get<LinkedAccountResponse[]>('/auth/sso/linked-accounts');\n }\n\n setPrimaryProvider(providerId: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`/auth/sso/primary-provider/${providerId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, tap } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { TotpSetupRequest, TotpVerifyRequest, TotpSetupResponse, TotpStatusResponse } from '../../models/auth/totp.models';\nimport { AuthResponse } from '../../models/auth/login.models';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class TotpService {\n constructor(private http: TgmHttpClient) {}\n\n getStatus(): Observable<TotpStatusResponse> {\n return this.http.get<TotpStatusResponse>('/auth/totp/status');\n }\n\n setup(): Observable<TotpSetupResponse> {\n return this.http.post<TotpSetupResponse>('/auth/totp/setup');\n }\n\n verifySetup(data: TotpSetupRequest): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>('/auth/totp/setup/verify', data);\n }\n\n disable(data: TotpSetupRequest): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>('/auth/totp/disable', data);\n }\n\n verify(data: TotpVerifyRequest): Observable<AuthResponse> {\n return this.http.post<AuthResponse>('/auth/totp/verify', data, { skipAuth: true });\n }\n\n regenerateRecoveryCodes(): Observable<ApiResponse<string[]>> {\n return this.http.post<ApiResponse<string[]>>('/auth/totp/recovery-codes/regenerate');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject, tap } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { PlatformLoginRequest, PlatformAuthResponse, PlatformAdminResponse } from '../../models/admin/platform-admin.models';\n\n@Injectable({ providedIn: 'root' })\nexport class PlatformAuthService {\n private currentAdmin$ = new BehaviorSubject<PlatformAdminResponse | null>(null);\n readonly admin$ = this.currentAdmin$.asObservable();\n\n constructor(private http: TgmHttpClient) {}\n\n login(credentials: PlatformLoginRequest): Observable<PlatformAuthResponse> {\n return this.http.post<PlatformAuthResponse>('/auth/platform/login', credentials, { skipAuth: true }).pipe(\n tap((res) => {\n if (res.accessToken) {\n this.http.setToken(res.accessToken);\n }\n if (res.admin) {\n this.currentAdmin$.next(res.admin);\n }\n })\n );\n }\n\n getCurrentAdmin(): Observable<PlatformAdminResponse> {\n return this.http.get<PlatformAdminResponse>('/auth/platform/me').pipe(\n tap((admin) => this.currentAdmin$.next(admin))\n );\n }\n\n logout(): void {\n this.http.clearTokens();\n this.currentAdmin$.next(null);\n }\n\n getAdmin(): PlatformAdminResponse | null {\n return this.currentAdmin$.value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\nimport {\n ClientResponse,\n ClientCreateRequest,\n ClientUpdateRequest,\n ClientAnalyticsResponse,\n LicenseResponse,\n LicenseOverviewItem,\n MigrationStatusResponse,\n MigrationHistoryResponse,\n} from '../../models/admin/client.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ClientAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(params?: PaginationParams): Observable<PagedResponse<ClientResponse>> {\n return this.http.get('/api/platform/clients', { params: params as any });\n }\n\n getActive(): Observable<ClientResponse[]> {\n return this.http.get('/api/platform/clients/active');\n }\n\n getById(id: number): Observable<ApiResponse<ClientResponse>> {\n return this.http.get(`/api/platform/clients/${id}`);\n }\n\n create(data: ClientCreateRequest): Observable<ApiResponse<ClientResponse>> {\n return this.http.post('/api/platform/clients', data);\n }\n\n update(id: number, data: ClientUpdateRequest): Observable<ApiResponse<ClientResponse>> {\n return this.http.put(`/api/platform/clients/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/platform/clients/${id}`);\n }\n\n provision(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/provision`);\n }\n\n provisionInfluxDb(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/provision/influxdb`);\n }\n\n suspend(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/suspend`);\n }\n\n activate(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/activate`);\n }\n\n // Migration\n migrateAll(): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/clients/migrate');\n }\n\n migrateClient(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/migrate`);\n }\n\n getMigrationStatus(): Observable<MigrationStatusResponse> {\n return this.http.get('/api/platform/clients/migration-status');\n }\n\n getMigrationHistory(): Observable<MigrationHistoryResponse[]> {\n return this.http.get('/api/platform/clients/migration-history');\n }\n\n getMigrationBatch(batchId: string): Observable<any> {\n return this.http.get(`/api/platform/clients/migration-history/batches/${batchId}`);\n }\n\n getFailedMigrations(): Observable<MigrationHistoryResponse[]> {\n return this.http.get('/api/platform/clients/migration-history/failed');\n }\n\n getClientMigrationHistory(identifier: string): Observable<MigrationHistoryResponse[]> {\n return this.http.get(`/api/platform/clients/migration-history/client/${identifier}`);\n }\n\n retryMigration(identifier: string): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/migration-history/retry/${identifier}`);\n }\n\n // Bulk operations\n bulkMigrate(ids: number[]): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/clients/bulk/migrate', { ids });\n }\n\n bulkSuspend(ids: number[]): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/clients/bulk/suspend', { ids });\n }\n\n bulkActivate(ids: number[]): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/clients/bulk/activate', { ids });\n }\n\n // License\n getLicense(id: number): Observable<LicenseResponse> {\n return this.http.get(`/api/platform/clients/${id}/license`);\n }\n\n generateLicense(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/license/generate`);\n }\n\n installLicense(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/license/install`, data);\n }\n\n generateAndInstallLicense(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${id}/license/generate-and-install`);\n }\n\n getLicenseOverview(): Observable<LicenseOverviewItem[]> {\n return this.http.get('/api/platform/clients/license-overview');\n }\n\n // Analytics\n getAnalytics(): Observable<ClientAnalyticsResponse> {\n return this.http.get('/api/platform/clients/analytics');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ClientApiKeyService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(clientId: number): Observable<any[]> {\n return this.http.get(`/api/platform/clients/${clientId}/api-keys`);\n }\n\n create(clientId: number, data: any): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${clientId}/api-keys`, data);\n }\n\n updatePermissions(clientId: number, keyId: number, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/platform/clients/${clientId}/api-keys/${keyId}/permissions`, data);\n }\n\n getEntityTypes(clientId: number): Observable<any[]> {\n return this.http.get(`/api/platform/clients/${clientId}/api-keys/entity-types`);\n }\n\n delete(clientId: number, keyId: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/platform/clients/${clientId}/api-keys/${keyId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n PlatformAdminResponse,\n PlatformAdminCreateRequest,\n PlatformAdminUpdateRequest,\n} from '../../models/admin/platform-admin.models';\n\n@Injectable({ providedIn: 'root' })\nexport class PlatformAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<PlatformAdminResponse[]> {\n return this.http.get('/api/platform/admins');\n }\n\n getById(id: number): Observable<ApiResponse<PlatformAdminResponse>> {\n return this.http.get(`/api/platform/admins/${id}`);\n }\n\n create(data: PlatformAdminCreateRequest): Observable<ApiResponse<PlatformAdminResponse>> {\n return this.http.post('/api/platform/admins', data);\n }\n\n update(id: number, data: PlatformAdminUpdateRequest): Observable<ApiResponse<PlatformAdminResponse>> {\n return this.http.put(`/api/platform/admins/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/platform/admins/${id}`);\n }\n\n resetPassword(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/admins/${id}/reset-password`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AnnouncementService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<any[]> {\n return this.http.get('/api/platform/announcements');\n }\n\n getActive(): Observable<any[]> {\n return this.http.get('/api/platform/announcements/active');\n }\n\n getBanners(): Observable<any[]> {\n return this.http.get('/api/platform/announcements/banners');\n }\n\n getById(id: number): Observable<ApiResponse<any>> {\n return this.http.get(`/api/platform/announcements/${id}`);\n }\n\n create(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/announcements', data);\n }\n\n update(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/platform/announcements/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/platform/announcements/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ArticleAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<any[]> {\n return this.http.get('/api/platform/articles');\n }\n\n getPublished(): Observable<any[]> {\n return this.http.get('/api/platform/articles/published');\n }\n\n getFeatured(): Observable<any[]> {\n return this.http.get('/api/platform/articles/featured');\n }\n\n getById(id: number): Observable<ApiResponse<any>> {\n return this.http.get(`/api/platform/articles/${id}`);\n }\n\n create(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/articles', data);\n }\n\n update(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/platform/articles/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/platform/articles/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n ErpConnectionRequest,\n ErpConnectionResponse,\n ErpEntityMappingRequest,\n ErpEntityMappingResponse,\n ErpSyncJobResponse,\n SyncScheduleConfigRequest,\n SyncScheduleConfigResponse,\n ErpDashboardResponse,\n} from '../../models/admin/erp.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ErpAdminService {\n constructor(private http: TgmHttpClient) {}\n\n // Connections\n getConnections(): Observable<ErpConnectionResponse[]> {\n return this.http.get('/api/admin/erp/connections');\n }\n\n getConnection(id: number): Observable<ApiResponse<ErpConnectionResponse>> {\n return this.http.get(`/api/admin/erp/connections/${id}`);\n }\n\n createConnection(data: ErpConnectionRequest): Observable<ApiResponse<ErpConnectionResponse>> {\n return this.http.post('/api/admin/erp/connections', data);\n }\n\n updateConnection(id: number, data: Partial<ErpConnectionRequest>): Observable<ApiResponse<ErpConnectionResponse>> {\n return this.http.put(`/api/admin/erp/connections/${id}`, data);\n }\n\n deleteConnection(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/erp/connections/${id}`);\n }\n\n testConnection(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/erp/connections/${id}/test`);\n }\n\n enableConnection(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/erp/connections/${id}/enable`);\n }\n\n disableConnection(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/erp/connections/${id}/disable`);\n }\n\n // Mappings\n getMappings(connectionId: number): Observable<ErpEntityMappingResponse[]> {\n return this.http.get(`/api/admin/erp/connections/${connectionId}/mappings`);\n }\n\n getMapping(id: number): Observable<ApiResponse<ErpEntityMappingResponse>> {\n return this.http.get(`/api/admin/erp/mappings/${id}`);\n }\n\n createMapping(connectionId: number, data: ErpEntityMappingRequest): Observable<ApiResponse<ErpEntityMappingResponse>> {\n return this.http.post(`/api/admin/erp/connections/${connectionId}/mappings`, data);\n }\n\n updateMapping(id: number, data: Partial<ErpEntityMappingRequest>): Observable<ApiResponse<ErpEntityMappingResponse>> {\n return this.http.put(`/api/admin/erp/mappings/${id}`, data);\n }\n\n deleteMapping(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/erp/mappings/${id}`);\n }\n\n // Sync Jobs\n getSyncJobs(connectionId: number): Observable<ErpSyncJobResponse[]> {\n return this.http.get(`/api/admin/erp/connections/${connectionId}/sync-jobs`);\n }\n\n getSyncJob(id: number): Observable<ApiResponse<ErpSyncJobResponse>> {\n return this.http.get(`/api/admin/erp/sync-jobs/${id}`);\n }\n\n fullSync(connectionId: number): Observable<ApiResponse<ErpSyncJobResponse>> {\n return this.http.post(`/api/admin/erp/connections/${connectionId}/sync/full`);\n }\n\n incrementalSync(connectionId: number): Observable<ApiResponse<ErpSyncJobResponse>> {\n return this.http.post(`/api/admin/erp/connections/${connectionId}/sync/incremental`);\n }\n\n entitySync(connectionId: number, data: any): Observable<ApiResponse<ErpSyncJobResponse>> {\n return this.http.post(`/api/admin/erp/connections/${connectionId}/sync/entity`, data);\n }\n\n cancelSyncJob(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/erp/sync-jobs/${id}/cancel`);\n }\n\n getSyncStatistics(connectionId: number): Observable<any> {\n return this.http.get(`/api/admin/erp/connections/${connectionId}/sync/statistics`);\n }\n\n getRunningJobs(): Observable<ErpSyncJobResponse[]> {\n return this.http.get('/api/admin/erp/sync-jobs/running');\n }\n\n getSyncJobDetail(id: number): Observable<any> {\n return this.http.get(`/api/admin/erp/sync-jobs/${id}/detail`);\n }\n\n retrySyncJob(id: number): Observable<ApiResponse<ErpSyncJobResponse>> {\n return this.http.post(`/api/admin/erp/sync-jobs/${id}/retry`);\n }\n\n // Schedule\n getSchedule(connectionId: number): Observable<SyncScheduleConfigResponse> {\n return this.http.get(`/api/admin/erp/connections/${connectionId}/schedule`);\n }\n\n updateSchedule(connectionId: number, data: SyncScheduleConfigRequest): Observable<ApiResponse<SyncScheduleConfigResponse>> {\n return this.http.put(`/api/admin/erp/connections/${connectionId}/schedule`, data);\n }\n\n enableSchedule(connectionId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/erp/connections/${connectionId}/schedule/enable`);\n }\n\n disableSchedule(connectionId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/erp/connections/${connectionId}/schedule/disable`);\n }\n\n // Dashboard & Reference\n getDashboard(): Observable<ErpDashboardResponse> {\n return this.http.get('/api/admin/erp/dashboard');\n }\n\n getSupportedErpTypes(): Observable<any[]> {\n return this.http.get('/api/admin/erp/supported-erp-types');\n }\n\n getSyncableEntities(): Observable<any[]> {\n return this.http.get('/api/admin/erp/syncable-entities');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n EmailProviderConfigRequest,\n EmailProviderConfigResponse,\n} from '../../models/admin/email-provider.models';\n\n@Injectable({ providedIn: 'root' })\nexport class EmailProviderAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getTypes(): Observable<any[]> {\n return this.http.get('/api/admin/email-providers/types');\n }\n\n getSystem(): Observable<EmailProviderConfigResponse> {\n return this.http.get('/api/admin/email-providers/system');\n }\n\n getByCompany(companyId: number): Observable<EmailProviderConfigResponse[]> {\n return this.http.get(`/api/admin/email-providers/company/${companyId}`);\n }\n\n getById(id: number): Observable<ApiResponse<EmailProviderConfigResponse>> {\n return this.http.get(`/api/admin/email-providers/${id}`);\n }\n\n create(data: EmailProviderConfigRequest): Observable<ApiResponse<EmailProviderConfigResponse>> {\n return this.http.post('/api/admin/email-providers', data);\n }\n\n update(id: number, data: Partial<EmailProviderConfigRequest>): Observable<ApiResponse<EmailProviderConfigResponse>> {\n return this.http.put(`/api/admin/email-providers/${id}`, data);\n }\n\n activate(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/email-providers/${id}/activate`);\n }\n\n deactivate(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/email-providers/${id}/deactivate`);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/email-providers/${id}`);\n }\n\n test(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/email-providers/${id}/test`);\n }\n\n testEmail(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/email-providers/${id}/test-email`);\n }\n\n quickSetupSendgrid(data: any): Observable<ApiResponse<EmailProviderConfigResponse>> {\n return this.http.post('/api/admin/email-providers/quick-setup/sendgrid', data);\n }\n\n quickSetupSmtp(data: any): Observable<ApiResponse<EmailProviderConfigResponse>> {\n return this.http.post('/api/admin/email-providers/quick-setup/smtp', data);\n }\n\n getStatus(): Observable<any> {\n return this.http.get('/api/admin/email-providers/status');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n MessagingProviderConfigRequest,\n MessagingProviderConfigResponse,\n} from '../../models/admin/messaging-provider.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MessagingProviderAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getTypes(): Observable<any[]> {\n return this.http.get('/api/admin/messaging-providers/types');\n }\n\n getChannels(): Observable<any[]> {\n return this.http.get('/api/admin/messaging-providers/channels');\n }\n\n getSystem(): Observable<MessagingProviderConfigResponse> {\n return this.http.get('/api/admin/messaging-providers/system');\n }\n\n getByCompany(companyId: number): Observable<MessagingProviderConfigResponse[]> {\n return this.http.get(`/api/admin/messaging-providers/company/${companyId}`);\n }\n\n getById(id: number): Observable<ApiResponse<MessagingProviderConfigResponse>> {\n return this.http.get(`/api/admin/messaging-providers/${id}`);\n }\n\n create(data: MessagingProviderConfigRequest): Observable<ApiResponse<MessagingProviderConfigResponse>> {\n return this.http.post('/api/admin/messaging-providers', data);\n }\n\n update(id: number, data: Partial<MessagingProviderConfigRequest>): Observable<ApiResponse<MessagingProviderConfigResponse>> {\n return this.http.put(`/api/admin/messaging-providers/${id}`, data);\n }\n\n activate(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/messaging-providers/${id}/activate`);\n }\n\n deactivate(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/messaging-providers/${id}/deactivate`);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/messaging-providers/${id}`);\n }\n\n test(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/messaging-providers/${id}/test`);\n }\n\n testMessage(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/messaging-providers/${id}/test-message`);\n }\n\n getStatus(): Observable<any> {\n return this.http.get('/api/admin/messaging-providers/status');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n IdentityProviderRequest,\n IdentityProviderResponse,\n} from '../../models/admin/identity-provider.models';\n\n@Injectable({ providedIn: 'root' })\nexport class IdentityProviderAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<IdentityProviderResponse[]> {\n return this.http.get('/api/admin/identity-providers');\n }\n\n getById(id: number): Observable<ApiResponse<IdentityProviderResponse>> {\n return this.http.get(`/api/admin/identity-providers/${id}`);\n }\n\n create(data: IdentityProviderRequest): Observable<ApiResponse<IdentityProviderResponse>> {\n return this.http.post('/api/admin/identity-providers', data);\n }\n\n update(id: number, data: Partial<IdentityProviderRequest>): Observable<ApiResponse<IdentityProviderResponse>> {\n return this.http.put(`/api/admin/identity-providers/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/identity-providers/${id}`);\n }\n\n test(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/identity-providers/${id}/test`);\n }\n\n discover(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/identity-providers/discover', data);\n }\n\n autoConfigure(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/identity-providers/${id}/auto-configure`);\n }\n\n updateStatus(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.patch(`/api/admin/identity-providers/${id}/status`, data);\n }\n\n getPresets(): Observable<any[]> {\n return this.http.get('/api/admin/identity-providers/presets');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n WebhookRequest,\n WebhookUpdateRequest,\n WebhookResponse,\n WebhookDeliveryResponse,\n WebhookTestResponse,\n} from '../../models/admin/webhook.models';\n\n@Injectable({ providedIn: 'root' })\nexport class WebhookAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getEventTypes(): Observable<any[]> {\n return this.http.get('/api/admin/webhooks/event-types');\n }\n\n getEventTypesByResource(): Observable<any> {\n return this.http.get('/api/admin/webhooks/event-types/by-resource');\n }\n\n getByCompany(companyId: number): Observable<WebhookResponse[]> {\n return this.http.get(`/api/admin/webhooks/company/${companyId}`);\n }\n\n getById(id: number): Observable<ApiResponse<WebhookResponse>> {\n return this.http.get(`/api/admin/webhooks/${id}`);\n }\n\n create(data: WebhookRequest): Observable<ApiResponse<WebhookResponse>> {\n return this.http.post('/api/admin/webhooks', data);\n }\n\n update(id: number, data: WebhookUpdateRequest): Observable<ApiResponse<WebhookResponse>> {\n return this.http.put(`/api/admin/webhooks/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/webhooks/${id}`);\n }\n\n enable(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/webhooks/${id}/enable`);\n }\n\n disable(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/webhooks/${id}/disable`);\n }\n\n regenerateSecret(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/webhooks/${id}/regenerate-secret`);\n }\n\n test(id: number): Observable<ApiResponse<WebhookTestResponse>> {\n return this.http.post(`/api/admin/webhooks/${id}/test`);\n }\n\n getDeliveries(id: number): Observable<WebhookDeliveryResponse[]> {\n return this.http.get(`/api/admin/webhooks/${id}/deliveries`);\n }\n\n getDelivery(deliveryId: number): Observable<ApiResponse<WebhookDeliveryResponse>> {\n return this.http.get(`/api/admin/webhooks/deliveries/${deliveryId}`);\n }\n\n retryDelivery(deliveryId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/webhooks/deliveries/${deliveryId}/retry`);\n }\n\n verifySignature(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/webhooks/verify-signature', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class PlatformWebhookService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<any[]> {\n return this.http.get('/api/platform/webhooks');\n }\n\n getById(id: number): Observable<ApiResponse<any>> {\n return this.http.get(`/api/platform/webhooks/${id}`);\n }\n\n create(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/webhooks', data);\n }\n\n update(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/platform/webhooks/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/platform/webhooks/${id}`);\n }\n\n test(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/webhooks/test/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { QueueResponse, QueueStatsResponse } from '../../models/admin/queue.models';\n\n@Injectable({ providedIn: 'root' })\nexport class QueueAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<QueueResponse[]> {\n return this.http.get('/api/admin/queues');\n }\n\n getById(id: number): Observable<ApiResponse<QueueResponse>> {\n return this.http.get(`/api/admin/queues/${id}`);\n }\n\n create(data: any): Observable<ApiResponse<QueueResponse>> {\n return this.http.post('/api/admin/queues', data);\n }\n\n update(id: number, data: any): Observable<ApiResponse<QueueResponse>> {\n return this.http.put(`/api/admin/queues/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/queues/${id}`);\n }\n\n start(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/queues/${id}/start`);\n }\n\n stop(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/queues/${id}/stop`);\n }\n\n pause(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/queues/${id}/pause`);\n }\n\n resume(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/queues/${id}/resume`);\n }\n\n startAll(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/queues/start-all');\n }\n\n stopAll(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/queues/stop-all');\n }\n\n getStatistics(): Observable<QueueStatsResponse> {\n return this.http.get('/api/admin/queues/statistics');\n }\n\n getHistory(id: number): Observable<any[]> {\n return this.http.get(`/api/admin/queues/${id}/history`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { SandboxResponse, SandboxStatsResponse } from '../../models/admin/sandbox.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SandboxAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<SandboxResponse[]> {\n return this.http.get('/api/admin/sandboxes');\n }\n\n getStats(): Observable<SandboxStatsResponse> {\n return this.http.get('/api/admin/sandboxes/stats');\n }\n\n getSettings(): Observable<any> {\n return this.http.get('/api/admin/sandboxes/settings');\n }\n\n updateSetting(key: string, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/admin/sandboxes/settings/${key}`, data);\n }\n\n updateMaxSandboxes(data: any): Observable<ApiResponse<any>> {\n return this.http.put('/api/admin/sandboxes/settings/max-sandboxes', data);\n }\n\n updateEnabled(data: any): Observable<ApiResponse<any>> {\n return this.http.put('/api/admin/sandboxes/settings/enabled', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { BackupResponse } from '../../models/admin/backup.models';\n\n@Injectable({ providedIn: 'root' })\nexport class BackupService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<BackupResponse[]> {\n return this.http.get('/api/platform/backups');\n }\n\n getByClient(clientId: number): Observable<BackupResponse[]> {\n return this.http.get(`/api/platform/backups/client/${clientId}`);\n }\n\n create(clientId: number): Observable<ApiResponse<BackupResponse>> {\n return this.http.post(`/api/platform/backups/client/${clientId}`);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/platform/backups/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { RoleRequest, RoleUpdateRequest, RoleResponse, RolePermissionRequest } from '../../models/admin/role.models';\n\n@Injectable({ providedIn: 'root' })\nexport class RoleAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<RoleResponse[]> {\n return this.http.get('/api/admin/roles');\n }\n\n getById(id: number): Observable<ApiResponse<RoleResponse>> {\n return this.http.get(`/api/admin/roles/${id}`);\n }\n\n create(data: RoleRequest): Observable<ApiResponse<RoleResponse>> {\n return this.http.post('/api/admin/roles', data);\n }\n\n update(id: number, data: RoleUpdateRequest): Observable<ApiResponse<RoleResponse>> {\n return this.http.put(`/api/admin/roles/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/roles/${id}`);\n }\n\n setPermissions(id: number, permissions: RolePermissionRequest[]): Observable<ApiResponse<any>> {\n return this.http.put(`/api/admin/roles/${id}/permissions`, permissions);\n }\n\n /** Bulk update permissions for a role (alias for setPermissions) */\n updatePermissions(roleId: number, permissions: RolePermissionRequest[]): Observable<ApiResponse<any>> {\n return this.http.put(`/api/admin/roles/${roleId}/permissions`, permissions);\n }\n\n addPermission(id: number, permission: RolePermissionRequest): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/roles/${id}/permissions`, permission);\n }\n\n removePermission(id: number, resourceName: string): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/roles/${id}/permissions/${resourceName}`);\n }\n\n getUsers(id: number): Observable<any[]> {\n return this.http.get(`/api/admin/roles/${id}/users`);\n }\n\n clone(id: number, data: any): Observable<ApiResponse<RoleResponse>> {\n return this.http.post(`/api/admin/roles/${id}/clone`, data);\n }\n\n getResourceNames(): Observable<string[]> {\n return this.http.get('/api/admin/roles/resource-names');\n }\n\n getPermissionSummary(id: number): Observable<any> {\n return this.http.get(`/api/admin/roles/${id}/permissions/summary`);\n }\n\n // --- Convenience aliases matching domain naming ---\n\n /** List all roles with permission counts */\n getRoles(): Observable<RoleResponse[]> {\n return this.getAll();\n }\n\n /** Get single role with permissions */\n getRole(id: number): Observable<ApiResponse<RoleResponse>> {\n return this.getById(id);\n }\n\n /** Create a new role */\n createRole(data: RoleRequest): Observable<ApiResponse<RoleResponse>> {\n return this.create(data);\n }\n\n /** Update a role */\n updateRole(id: number, data: RoleUpdateRequest): Observable<ApiResponse<RoleResponse>> {\n return this.update(id, data);\n }\n\n /** Clone a role */\n cloneRole(id: number): Observable<ApiResponse<RoleResponse>> {\n return this.clone(id, {});\n }\n\n /** Get users for a role */\n getRoleUsers(roleId: number): Observable<any[]> {\n return this.getUsers(roleId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class UserAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(params?: PaginationParams): Observable<PagedResponse<any>> {\n return this.http.get('/api/admin/users', { params: params as any });\n }\n\n getById(id: number): Observable<ApiResponse<any>> {\n return this.http.get(`/api/admin/users/${id}`);\n }\n\n create(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/users', data);\n }\n\n update(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/admin/users/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/users/${id}`);\n }\n\n block(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${id}/block`);\n }\n\n unblock(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${id}/unblock`);\n }\n\n activate(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${id}/activate`);\n }\n\n deactivate(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${id}/deactivate`);\n }\n\n updateRole(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/admin/users/${id}/role`, data);\n }\n\n forcePasswordReset(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${id}/force-password-reset`);\n }\n\n resendVerification(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${id}/resend-verification`);\n }\n\n invite(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/users/invite', data);\n }\n\n resendInvite(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${id}/resend-invite`);\n }\n\n generateImpersonationCode(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/users/impersonation/generate-code');\n }\n\n startImpersonation(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/users/impersonation/start', data);\n }\n\n verifyImpersonation(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/users/impersonation/verify', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class UserPermissionService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(userId: number): Observable<any[]> {\n return this.http.get(`/api/admin/users/${userId}/permissions`);\n }\n\n add(userId: number, data: any): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${userId}/permissions`, data);\n }\n\n update(userId: number, resourceName: string, data: any): Observable<ApiResponse<any>> {\n return this.http.put(`/api/admin/users/${userId}/permissions/${resourceName}`, data);\n }\n\n remove(userId: number, resourceName: string): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/users/${userId}/permissions/${resourceName}`);\n }\n\n removeAll(userId: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/users/${userId}/permissions`);\n }\n\n bulkAdd(userId: number, data: any): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/users/${userId}/permissions/bulk`, data);\n }\n\n getAvailableResources(userId: number): Observable<any[]> {\n return this.http.get(`/api/admin/users/${userId}/permissions/available-resources`);\n }\n\n check(userId: number, resourceName: string, action: string): Observable<any> {\n return this.http.get(`/api/admin/users/${userId}/permissions/check/${resourceName}/${action}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CacheAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getStatistics(): Observable<any> {\n return this.http.get('/api/admin/cache/statistics');\n }\n\n evictAll(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/cache/evict/all');\n }\n\n evictReferenceData(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/cache/evict/reference-data');\n }\n\n evictDashboard(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/cache/evict/dashboard');\n }\n\n evictUser(userId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/cache/evict/user/${userId}`);\n }\n\n evictCompany(companyId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/cache/evict/company/${companyId}`);\n }\n\n evictErp(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/cache/evict/erp');\n }\n\n evictErpConnection(connectionId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/cache/evict/erp/connection/${connectionId}`);\n }\n\n evictAlerts(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/cache/evict/alerts');\n }\n\n evictInventory(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/cache/evict/inventory');\n }\n\n deleteSession(userId: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/cache/session/${userId}`);\n }\n\n getSessions(userId: number): Observable<any> {\n return this.http.get(`/api/admin/cache/sessions/${userId}`);\n }\n\n getLockStatus(lockName: string): Observable<any> {\n return this.http.get(`/api/admin/cache/lock/status/${lockName}`);\n }\n\n releaseLock(lockName: string): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/cache/lock/${lockName}`);\n }\n\n getCounter(name: string): Observable<any> {\n return this.http.get(`/api/admin/cache/counter/${name}`);\n }\n\n resetCounter(name: string): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/cache/counter/${name}/reset`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { PaginationParams } from '../../models/base.models';\nimport { AuditLogResponse, AuditLogStatsResponse } from '../../models/admin/audit.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AuditLogService {\n constructor(private http: TgmHttpClient) {}\n\n // InfluxDB-backed audit logs (/api/admin/audit-logs)\n getInfluxDbStatus(): Observable<any> {\n return this.http.get('/api/admin/audit-logs/status');\n }\n\n getInfluxDbLogs(startTime: string, endTime: string): Observable<AuditLogResponse[]> {\n return this.http.get('/api/admin/audit-logs/influxdb', {\n params: { startTime, endTime },\n });\n }\n\n getSecurityEvents(): Observable<AuditLogResponse[]> {\n return this.http.get('/api/admin/audit-logs/influxdb/security');\n }\n\n getActionStats(): Observable<AuditLogStatsResponse> {\n return this.http.get('/api/admin/audit-logs/influxdb/stats/actions');\n }\n\n getEntityStats(): Observable<AuditLogStatsResponse> {\n return this.http.get('/api/admin/audit-logs/influxdb/stats/entities');\n }\n\n getUserAuditLogs(userId: number): Observable<AuditLogResponse[]> {\n return this.http.get(`/api/admin/audit-logs/influxdb/user/${userId}`);\n }\n\n // Platform audit logs (/api/platform/audit)\n getPlatformLogs(params?: PaginationParams): Observable<any> {\n return this.http.get('/api/platform/audit', { params: params as any });\n }\n\n getRecentPlatformLogs(): Observable<any[]> {\n return this.http.get('/api/platform/audit/recent');\n }\n\n getEntityAuditTrail(entityType: string, entityId: number): Observable<any[]> {\n return this.http.get(`/api/platform/audit/entity/${entityType}/${entityId}`);\n }\n\n getClientLogs(): Observable<any[]> {\n return this.http.get('/api/platform/audit/client-logs');\n }\n\n getEligibleClients(): Observable<any[]> {\n return this.http.get('/api/platform/audit/eligible-clients');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class DocumentAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getOcrStatus(): Observable<any> {\n return this.http.get('/api/admin/documents/ocr-status');\n }\n\n getStats(): Observable<any> {\n return this.http.get('/api/admin/documents/stats');\n }\n\n getAll(): Observable<any[]> {\n return this.http.get('/api/admin/documents');\n }\n\n getById(fileId: number): Observable<ApiResponse<any>> {\n return this.http.get(`/api/admin/documents/${fileId}`);\n }\n\n reprocess(fileId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/documents/${fileId}/reprocess`);\n }\n\n reprocessFailed(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/documents/reprocess-failed');\n }\n\n process(fileId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/documents/${fileId}/process`);\n }\n\n delete(fileId: number): Observable<ApiResponse<void>> {\n return this.http.delete(`/api/admin/documents/${fileId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ClientOcrService {\n constructor(private http: TgmHttpClient) {}\n\n getStatus(clientId: number): Observable<any> {\n return this.http.get(`/api/platform/clients/${clientId}/ocr/status`);\n }\n\n toggle(clientId: number): Observable<ApiResponse<any>> {\n return this.http.put(`/api/platform/clients/${clientId}/ocr/toggle`);\n }\n\n start(clientId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${clientId}/ocr/start`);\n }\n\n retryFailed(clientId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/clients/${clientId}/ocr/retry-failed`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ClientUsageService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<any[]> {\n return this.http.get('/api/platform/usage');\n }\n\n getByClient(clientId: number): Observable<any> {\n return this.http.get(`/api/platform/usage/client/${clientId}`);\n }\n\n getHistory(clientId: number): Observable<any[]> {\n return this.http.get(`/api/platform/usage/client/${clientId}/history`);\n }\n\n collect(): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/usage/collect');\n }\n\n getDbHealth(clientId: number): Observable<any> {\n return this.http.get(`/api/platform/usage/client/${clientId}/db-health`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\n\n@Injectable({ providedIn: 'root' })\nexport class DataExportService {\n constructor(private http: TgmHttpClient) {}\n\n getSummary(clientId: number): Observable<any> {\n return this.http.get(`/api/platform/data-export/client/${clientId}/summary`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class EmailAdminService {\n constructor(private http: TgmHttpClient) {}\n\n getStatus(): Observable<any> {\n return this.http.get('/api/admin/email/status');\n }\n\n testConfig(): Observable<ApiResponse<any>> {\n return this.http.post('/api/admin/email/test');\n }\n\n testTemplate(templateName: string): Observable<ApiResponse<any>> {\n return this.http.post(`/api/admin/email/test/template/${templateName}`);\n }\n\n getTemplates(): Observable<any[]> {\n return this.http.get('/api/admin/email/templates');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { SubscriptionResponse } from '../../models/admin/client.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SubscriptionService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<SubscriptionResponse[]> {\n return this.http.get('/api/platform/subscriptions');\n }\n\n getByClient(clientId: number): Observable<SubscriptionResponse> {\n return this.http.get(`/api/platform/subscriptions/client/${clientId}`);\n }\n\n create(clientId: number, data: any): Observable<ApiResponse<SubscriptionResponse>> {\n return this.http.post(`/api/platform/subscriptions/client/${clientId}`, data);\n }\n\n cancel(clientId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/subscriptions/client/${clientId}/cancel`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SystemHealthService {\n constructor(private http: TgmHttpClient) {}\n\n getHealth(): Observable<any> {\n return this.http.get('/api/platform/system/health');\n }\n\n getMetrics(): Observable<any> {\n return this.http.get('/api/platform/system/metrics');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class PlatformNotificationService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<any[]> {\n return this.http.get('/api/platform/notifications');\n }\n\n getUnread(): Observable<any[]> {\n return this.http.get('/api/platform/notifications/unread');\n }\n\n markRead(id: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/notifications/${id}/read`);\n }\n\n markAllRead(): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/notifications/read-all');\n }\n\n create(data: any): Observable<ApiResponse<any>> {\n return this.http.post('/api/platform/notifications', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ImpersonationService {\n constructor(private http: TgmHttpClient) {}\n\n impersonate(clientId: number): Observable<ApiResponse<any>> {\n return this.http.post(`/api/platform/impersonate/${clientId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ActivityLogService {\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<any[]> {\n return this.http.get('/api/platform/activity-logs');\n }\n\n getRecent(): Observable<any[]> {\n return this.http.get('/api/platform/activity-logs/recent');\n }\n\n getClientLogs(): Observable<any[]> {\n return this.http.get('/api/platform/activity-logs/client-logs');\n }\n\n getEligibleClients(): Observable<any[]> {\n return this.http.get('/api/platform/activity-logs/eligible-clients');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\n\nexport interface CronJobExecution {\n id: number;\n jobName: string;\n jobGroup?: string;\n startedAt: string;\n finishedAt?: string;\n durationMs?: number;\n status: 'RUNNING' | 'SUCCESS' | 'FAILED' | 'SKIPPED';\n itemsProcessed: number;\n errorMessage?: string;\n details?: string;\n tenantId?: string;\n}\n\nexport interface EmailLogEntry {\n id: number;\n recipient: string;\n subject?: string;\n templateName?: string;\n status: 'PENDING' | 'SENT' | 'FAILED';\n provider?: string;\n sentAt?: string;\n errorMessage?: string;\n userId?: number;\n tenantId?: string;\n jobExecutionId?: number;\n}\n\nexport interface SchedulerStats {\n jobsRun24h: number;\n jobsSuccess24h: number;\n jobsFailed24h: number;\n emailsSent24h: number;\n emailsFailed24h: number;\n emailsSent7d: number;\n emailsFailed7d: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SchedulerAdminService {\n\n constructor(private http: TgmHttpClient) {}\n\n getStats(): Observable<any> {\n return this.http.get('/api/admin/scheduler/stats');\n }\n\n getSummary(): Observable<any> {\n return this.http.get('/api/admin/scheduler/summary');\n }\n\n getJobNames(): Observable<any> {\n return this.http.get('/api/admin/scheduler/job-names');\n }\n\n getExecutions(params?: { page?: number; size?: number; jobName?: string; status?: string }): Observable<any> {\n return this.http.get('/api/admin/scheduler/executions', { params: params as any });\n }\n\n getExecution(id: number): Observable<any> {\n return this.http.get(`/api/admin/scheduler/executions/${id}`);\n }\n\n getEmails(params?: { page?: number; size?: number; recipient?: string; status?: string; jobExecutionId?: number }): Observable<any> {\n return this.http.get('/api/admin/scheduler/emails', { params: params as any });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient, RequestOptions } from '../../core/http-client.service';\nimport { ApiResponse, FilterParams, PagedResponse, PaginationParams } from '../../models/base.models';\n\n@Injectable()\nexport abstract class BaseCrudService<T, CreateReq = any, UpdateReq = any> {\n protected abstract resourcePath: string;\n\n constructor(protected http: TgmHttpClient) {}\n\n getAll(params?: PaginationParams & Record<string, any>): Observable<PagedResponse<T>> {\n return this.http.get<PagedResponse<T>>(this.resourcePath, { params: params as any });\n }\n\n getById(id: number, params?: Record<string, string | number | boolean | undefined>): Observable<ApiResponse<T>> {\n return this.http.get<ApiResponse<T>>(`${this.resourcePath}/${id}`, { params: params as any });\n }\n\n create(data: CreateReq): Observable<ApiResponse<T>> {\n return this.http.post<ApiResponse<T>>(this.resourcePath, data);\n }\n\n update(id: number, data: UpdateReq): Observable<ApiResponse<T>> {\n return this.http.put<ApiResponse<T>>(`${this.resourcePath}/${id}`, data);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.resourcePath}/${id}`);\n }\n\n count(filters?: FilterParams): Observable<ApiResponse<number>> {\n const params = filters ? filters.toQueryParams() : undefined;\n return this.http.get<ApiResponse<number>>(`${this.resourcePath}/count`, { params: params as any });\n }\n\n duplicate(id: number): Observable<ApiResponse<T>> {\n return this.http.post<ApiResponse<T>>(`${this.resourcePath}/${id}/duplicate`, {});\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Company } from '../../models/api/company.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CompanyService extends BaseCrudService<Company> {\n protected resourcePath = '/api/companies';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n /** Get the singleton company config (used by many components) */\n getCompany(params?: any): Observable<any> {\n return this.http.get<any>('/api/company', { params });\n }\n\n /** Update company by ID (preferred — uses standard CRUD path) */\n updateCompany(data: any, params?: any): Observable<any> {\n const id = data?.id;\n if (id) {\n return this.http.put<any>(`${this.resourcePath}/${id}`, data, { params });\n }\n // Fallback: PUT /api/company (no ID — backend resolves to first active company)\n return this.http.put<any>('/api/company', data, { params });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Unit } from '../../models/api/unit.models';\n\n@Injectable({ providedIn: 'root' })\nexport class UnitService extends BaseCrudService<Unit> {\n protected resourcePath = '/api/units';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { Component, ComponentGroup, SubAssembly } from '../../models/api/component.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentService extends BaseCrudService<Component> {\n protected resourcePath = '/api/components';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n /**\n * Get checklist templates associated with a component.\n */\n getChecklistTemplates(componentId: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.resourcePath}/${componentId}/checklist-templates`);\n }\n\n /**\n * Get failures associated with a component.\n */\n getFailures(componentId: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.resourcePath}/${componentId}/failures`);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentGroupService extends BaseCrudService<ComponentGroup> {\n protected resourcePath = '/api/component-groups';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SubAssemblyService extends BaseCrudService<SubAssembly> {\n protected resourcePath = '/api/sub-assemblies';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Inspection, InspectionComponent } from '../../models/api/inspection.models';\n\n@Injectable({ providedIn: 'root' })\nexport class InspectionService extends BaseCrudService<Inspection> {\n protected resourcePath = '/api/inspections';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class InspectionComponentService extends BaseCrudService<InspectionComponent> {\n protected resourcePath = '/api/inspection-components';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Failure, FailureCause, FailureAction, CorrectiveAction } from '../../models/api/failure.models';\n\n@Injectable({ providedIn: 'root' })\nexport class FailureService extends BaseCrudService<Failure> {\n protected resourcePath = '/api/failures';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FailureCauseService extends BaseCrudService<FailureCause> {\n protected resourcePath = '/api/failure-causes';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FailureActionService extends BaseCrudService<FailureAction> {\n protected resourcePath = '/api/failure-actions';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CorrectiveActionService extends BaseCrudService<CorrectiveAction> {\n protected resourcePath = '/api/corrective-actions';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Intervention } from '../../models/api/intervention.models';\n\n@Injectable({ providedIn: 'root' })\nexport class InterventionService extends BaseCrudService<Intervention> {\n protected resourcePath = '/api/interventions';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { MaintenanceRecord } from '../../models/api/maintenance-record.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MaintenanceRecordService extends BaseCrudService<MaintenanceRecord> {\n protected resourcePath = '/api/maintenance-records';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { InterventionRequest } from '../../models/api/intervention.models';\n\n@Injectable({ providedIn: 'root' })\nexport class InterventionRequestService extends BaseCrudService<InterventionRequest> {\n protected resourcePath = '/api/intervention-requests';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport {\n MaterialItem,\n MaterialItemHistory,\n MaterialCategory,\n SparePart,\n} from '../../models/api/material.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialItemService extends BaseCrudService<MaterialItem> {\n protected resourcePath = '/api/material-items';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialItemHistoryService extends BaseCrudService<MaterialItemHistory> {\n protected resourcePath = '/api/material-item-histories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialCategoryService extends BaseCrudService<MaterialCategory> {\n protected resourcePath = '/api/material-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SparePartService extends BaseCrudService<SparePart> {\n protected resourcePath = '/api/spare-parts';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport {\n MaterialConsumable,\n MaterialConsumableCategory,\n MaterialConsumableHistory,\n} from '../../models/api/material.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialConsumableService extends BaseCrudService<MaterialConsumable> {\n protected resourcePath = '/api/material-consumables';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialConsumableCategoryService extends BaseCrudService<MaterialConsumableCategory> {\n protected resourcePath = '/api/material-consumable-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialConsumableHistoryService extends BaseCrudService<MaterialConsumableHistory> {\n protected resourcePath = '/api/material-consumable-histories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { MaterialInstrument, MaterialInstrumentHistory } from '../../models/api/material.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialInstrumentService extends BaseCrudService<MaterialInstrument> {\n protected resourcePath = '/api/material-instruments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialInstrumentHistoryService extends BaseCrudService<MaterialInstrumentHistory> {\n protected resourcePath = '/api/material-instrument-histories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport {\n MaterialTooling,\n MaterialToolingCategory,\n MaterialToolingHistory,\n} from '../../models/api/material.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialToolingService extends BaseCrudService<MaterialTooling> {\n protected resourcePath = '/api/material-toolings';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialToolingCategoryService extends BaseCrudService<MaterialToolingCategory> {\n protected resourcePath = '/api/material-tooling-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaterialToolingHistoryService extends BaseCrudService<MaterialToolingHistory> {\n protected resourcePath = '/api/material-tooling-histories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Sensor, SensorAlert } from '../../models/api/sensor.models';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SensorService extends BaseCrudService<Sensor> {\n protected resourcePath = '/api/sensors';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n pollAlerts(since: string, limit?: number): Observable<ApiResponse<SensorAlert[]>> {\n const params: Record<string, any> = { since };\n if (limit !== undefined) {\n params['limit'] = limit;\n }\n return this.http.get<ApiResponse<SensorAlert[]>>(`/iot/alerts/poll`, {\n params: params as any,\n });\n }\n\n /** Create a maintenance suppression window — all alerts suppressed during this period */\n createMaintenanceWindow(sensorId: number, from: string, until: string, reason?: string): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`/iot/sensors/${sensorId}/maintenance-window`, {\n from, until, reason\n });\n }\n\n /** Get protocol adapters status */\n getProtocols(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`/iot/protocols`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { SensorAlert } from '../../models/api/sensor.models';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertService extends BaseCrudService<SensorAlert> {\n protected resourcePath = '/api/alerts';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n acknowledge(id: number): Observable<ApiResponse<SensorAlert>> {\n return this.http.post<ApiResponse<SensorAlert>>(`${this.resourcePath}/${id}/acknowledge`);\n }\n\n resolve(id: number): Observable<ApiResponse<SensorAlert>> {\n return this.http.post<ApiResponse<SensorAlert>>(`${this.resourcePath}/${id}/resolve`);\n }\n\n escalate(id: number): Observable<ApiResponse<SensorAlert>> {\n return this.http.post<ApiResponse<SensorAlert>>(`${this.resourcePath}/${id}/escalate`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Project } from '../../models/api/project.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ProjectService extends BaseCrudService<Project> {\n protected resourcePath = '/api/projects';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { CapexProject } from '../../models/api/project.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CapexProjectService extends BaseCrudService<CapexProject> {\n protected resourcePath = '/api/capex-projects';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Budget } from '../../models/api/project.models';\n\n@Injectable({ providedIn: 'root' })\nexport class BudgetService extends BaseCrudService<Budget> {\n protected resourcePath = '/api/budgets';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { Bid } from '../../models/api/project.models';\n\n@Injectable({ providedIn: 'root' })\nexport class BidService extends BaseCrudService<Bid> {\n protected resourcePath = '/api/bids';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { TgFile, TgFolder, Drawing, DrawingCategory } from '../../models/api/document.models';\n\n@Injectable({ providedIn: 'root' })\nexport class TgFileService extends BaseCrudService<TgFile> {\n protected resourcePath = '/api/tg-files';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TgFolderService extends BaseCrudService<TgFolder> {\n protected resourcePath = '/api/tg-folders';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DrawingService extends BaseCrudService<Drawing> {\n protected resourcePath = '/api/drawings';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DrawingCategoryService extends BaseCrudService<DrawingCategory> {\n protected resourcePath = '/api/drawing-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n ComplianceObligation,\n ComplianceSubmission,\n EnvironmentalPermit,\n Certification,\n} from '../../models/api/compliance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ComplianceObligationService extends BaseCrudService<ComplianceObligation> {\n protected resourcePath = '/api/compliance-obligations';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getRiskScores(): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.resourcePath}/risk-scores`);\n }\n\n getRiskScore(id: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.resourcePath}/risk-scores/${id}`);\n }\n\n getCalendar(start: string, end: string): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.resourcePath}/calendar`, {\n params: { start, end } as any,\n });\n }\n\n exportCsv(start: string, end: string): Observable<Blob> {\n return this.http.download(`${this.resourcePath}/export/csv`, {\n params: { start, end } as any,\n });\n }\n\n exportPdf(start: string, end: string): Observable<Blob> {\n return this.http.download(`${this.resourcePath}/export/pdf`, {\n params: { start, end } as any,\n });\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComplianceSubmissionService extends BaseCrudService<ComplianceSubmission> {\n protected resourcePath = '/api/compliance-submissions';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EnvironmentalPermitService extends BaseCrudService<EnvironmentalPermit> {\n protected resourcePath = '/api/permits';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CertificationService extends BaseCrudService<Certification> {\n protected resourcePath = '/api/certifications';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n AncillaryService,\n GridConnection,\n CurtailmentEvent,\n OutageEvent,\n OperatingEvent,\n SiteAssessment,\n} from '../../models/api/energy.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AncillaryServiceCrudService extends BaseCrudService<AncillaryService> {\n protected resourcePath = '/api/ancillary-services';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GridConnectionService extends BaseCrudService<GridConnection> {\n protected resourcePath = '/api/grid-connections';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CurtailmentEventService extends BaseCrudService<CurtailmentEvent> {\n protected resourcePath = '/api/curtailments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class OutageEventService extends BaseCrudService<OutageEvent> {\n protected resourcePath = '/api/outages';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getGantt(start: string, end: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.resourcePath}/gantt`, {\n params: { start, end } as any,\n });\n }\n\n getAnalysis(id: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.resourcePath}/${id}/analysis`);\n }\n\n getOverlaps(id: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.resourcePath}/${id}/overlaps`);\n }\n\n getResourceConflicts(id: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.resourcePath}/${id}/resource-conflicts`);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class OperatingEventService extends BaseCrudService<OperatingEvent> {\n protected resourcePath = '/api/operating-events';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SiteAssessmentService extends BaseCrudService<SiteAssessment> {\n protected resourcePath = '/api/site-assessments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { WarrantyContract, WarrantyClaim } from '../../models/api/warranty.models';\n\n@Injectable({ providedIn: 'root' })\nexport class WarrantyContractService extends BaseCrudService<WarrantyContract> {\n protected resourcePath = '/api/warranties';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class WarrantyClaimService extends BaseCrudService<WarrantyClaim> {\n protected resourcePath = '/api/warranty-claims';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse } from '../../models/base.models';\nimport { BaseCrudService } from './base-crud.service';\nimport {\n Vehicle,\n Driver,\n VehicleTrip,\n VehicleInspection,\n VehicleMaintenance,\n FuelRecord,\n Geofence,\n GeofenceEvent,\n GeofenceCheckResult,\n GpsLocation,\n TrackedEntity,\n} from '../../models/api/fleet.models';\n\n@Injectable({ providedIn: 'root' })\nexport class VehicleService extends BaseCrudService<Vehicle> {\n protected resourcePath = '/api/vehicles';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DriverService extends BaseCrudService<Driver> {\n protected resourcePath = '/api/drivers';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class VehicleTripService extends BaseCrudService<VehicleTrip> {\n protected resourcePath = '/api/vehicle-trips';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class VehicleInspectionService extends BaseCrudService<VehicleInspection> {\n protected resourcePath = '/api/vehicle-inspections';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class VehicleMaintenanceService extends BaseCrudService<VehicleMaintenance> {\n protected resourcePath = '/api/vehicle-maintenances';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FuelRecordService extends BaseCrudService<FuelRecord> {\n protected resourcePath = '/api/fuel-records';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GeofenceService extends BaseCrudService<Geofence> {\n protected resourcePath = '/api/geofences';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getActiveByCompany(companyId: number): Observable<ApiResponse<Geofence[]>> {\n return this.http.get<ApiResponse<Geofence[]>>(`${this.resourcePath}/company/${companyId}/active`);\n }\n\n checkLocation(companyId: number, latitude: number, longitude: number): Observable<ApiResponse<GeofenceCheckResult[]>> {\n return this.http.post<ApiResponse<GeofenceCheckResult[]>>(\n `${this.resourcePath}/check`,\n null,\n { params: { companyId, latitude, longitude } as any }\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GeofenceEventService extends BaseCrudService<GeofenceEvent> {\n protected resourcePath = '/api/geofence-events';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getByCompany(companyId: number, page = 0, pageSize = 25): Observable<PagedResponse<GeofenceEvent>> {\n return this.http.get<PagedResponse<GeofenceEvent>>(\n `${this.resourcePath}/company/${companyId}`,\n { params: { page, pageSize } as any }\n );\n }\n\n getByEntity(entityType: string, entityId: number, companyId: number): Observable<ApiResponse<GeofenceEvent[]>> {\n return this.http.get<ApiResponse<GeofenceEvent[]>>(\n `${this.resourcePath}/entity/${entityType}/${entityId}`,\n { params: { companyId } as any }\n );\n }\n\n getByDateRange(companyId: number, start: string, end: string): Observable<ApiResponse<GeofenceEvent[]>> {\n return this.http.get<ApiResponse<GeofenceEvent[]>>(\n `${this.resourcePath}/company/${companyId}/range`,\n { params: { start, end } as any }\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GpsLocationService extends BaseCrudService<GpsLocation> {\n protected resourcePath = '/api/gps-locations';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TrackedEntityService extends BaseCrudService<TrackedEntity> {\n protected resourcePath = '/api/tracked-entities';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { SlaBreachRecord } from '../../models/api/fleet.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SlaBreachRecordService extends BaseCrudService<SlaBreachRecord> {\n protected resourcePath = '/api/sla-breach-records';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { SlaBreachRecord } from '../../models/api/fleet.models';\nimport {\n ReportDefinition,\n GeneratedReport,\n ReportTemplate,\n ReportStats,\n GenerateReportRequest,\n CreateReportDefinitionRequest,\n UpdateReportDefinitionRequest,\n} from '../../models/api/reporting.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ReportingService {\n private basePath = '/api/reports';\n private advancedPath = '/api/reports/advanced';\n\n constructor(private http: TgmHttpClient) {}\n\n // ==================== SLA Reports ====================\n\n getSlaBreachSummary(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/sla/breaches/summary`);\n }\n\n getUnresolvedBreaches(): Observable<ApiResponse<SlaBreachRecord[]>> {\n return this.http.get<ApiResponse<SlaBreachRecord[]>>(`${this.basePath}/sla/breaches/unresolved`);\n }\n\n getBreachesByEntityType(entityType: string): Observable<ApiResponse<SlaBreachRecord[]>> {\n return this.http.get<ApiResponse<SlaBreachRecord[]>>(`${this.basePath}/sla/breaches/by-entity/${entityType}`);\n }\n\n // ==================== Recurring Event Reports ====================\n\n getRecurringEventSummary(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/recurring-events/summary`);\n }\n\n getDueRecurringEvents(): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/recurring-events/due`);\n }\n\n // ==================== Geofence Reports ====================\n\n getGeofenceSummary(companyId: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/geofences/company/${companyId}/summary`);\n }\n\n getGeofenceActivity(companyId: number, start: string, end: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(\n `${this.basePath}/geofences/company/${companyId}/activity`,\n { params: { start, end } as any }\n );\n }\n\n // ==================== Advanced Report Templates ====================\n\n getTemplates(): Observable<ApiResponse<ReportTemplate[]>> {\n return this.http.get<ApiResponse<ReportTemplate[]>>(`${this.advancedPath}/templates`);\n }\n\n getTemplate(type: string): Observable<ApiResponse<ReportTemplate>> {\n return this.http.get<ApiResponse<ReportTemplate>>(`${this.advancedPath}/templates/${type}`);\n }\n\n // ==================== Report Definitions ====================\n\n createDefinition(data: CreateReportDefinitionRequest): Observable<ApiResponse<ReportDefinition>> {\n return this.http.post<ApiResponse<ReportDefinition>>(`${this.advancedPath}/definitions`, data);\n }\n\n listDefinitions(page = 0, size = 20): Observable<ApiResponse<ReportDefinition[]>> {\n return this.http.get<ApiResponse<ReportDefinition[]>>(`${this.advancedPath}/definitions`, {\n params: { page, size } as any,\n });\n }\n\n getDefinition(id: number): Observable<ApiResponse<ReportDefinition>> {\n return this.http.get<ApiResponse<ReportDefinition>>(`${this.advancedPath}/definitions/${id}`);\n }\n\n updateDefinition(id: number, data: UpdateReportDefinitionRequest): Observable<ApiResponse<ReportDefinition>> {\n return this.http.put<ApiResponse<ReportDefinition>>(`${this.advancedPath}/definitions/${id}`, data);\n }\n\n deleteDefinition(id: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.advancedPath}/definitions/${id}`);\n }\n\n toggleDefinition(id: number, enabled: boolean): Observable<ApiResponse<ReportDefinition>> {\n return this.http.patch<ApiResponse<ReportDefinition>>(`${this.advancedPath}/definitions/${id}/toggle`, { enabled });\n }\n\n // ==================== Report Generation ====================\n\n generateReport(request: GenerateReportRequest): Observable<ApiResponse<GeneratedReport>> {\n return this.http.post<ApiResponse<GeneratedReport>>(`${this.advancedPath}/generate`, request);\n }\n\n generateFromDefinition(id: number): Observable<ApiResponse<GeneratedReport>> {\n return this.http.post<ApiResponse<GeneratedReport>>(`${this.advancedPath}/definitions/${id}/generate`, {});\n }\n\n // ==================== Generated Reports ====================\n\n listGeneratedReports(page = 0, size = 20): Observable<ApiResponse<GeneratedReport[]>> {\n return this.http.get<ApiResponse<GeneratedReport[]>>(`${this.advancedPath}/generated`, {\n params: { page, size } as any,\n });\n }\n\n getGeneratedReport(id: number): Observable<ApiResponse<GeneratedReport>> {\n return this.http.get<ApiResponse<GeneratedReport>>(`${this.advancedPath}/generated/${id}`);\n }\n\n downloadReport(id: number): Observable<Blob> {\n return this.http.download(`${this.advancedPath}/generated/${id}/download`);\n }\n\n deleteGeneratedReport(id: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.advancedPath}/generated/${id}`);\n }\n\n // ==================== Stats ====================\n\n getReportStats(): Observable<ApiResponse<ReportStats>> {\n return this.http.get<ApiResponse<ReportStats>>(`${this.advancedPath}/stats`);\n }\n\n // ==================== PDF Report Generation ====================\n\n getReport(id: number, font?: string, logo?: string): Observable<Blob> {\n const params: Record<string, any> = {};\n if (font) params['font'] = font;\n if (logo) params['logo'] = logo;\n return this.http.download(`${this.advancedPath}/generated/${id}/pdf`, {\n params: params as any,\n });\n }\n\n downloadReportPdf(id: number, font?: string, logo?: string): Observable<Blob> {\n const params: Record<string, any> = {};\n if (font) params['font'] = font;\n if (logo) params['logo'] = logo;\n return this.http.download(`${this.advancedPath}/generated/${id}/pdf/download`, {\n params: params as any,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { BulkOperationResponse } from '../../models/api/fleet.models';\n\n@Injectable({ providedIn: 'root' })\nexport class BulkOperationService {\n private basePath = '/api/bulk';\n\n constructor(private http: TgmHttpClient) {}\n\n // Inspections\n bulkUpdateInspectionStatus(ids: number[], status: string): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/inspections/status`, { ids, status });\n }\n\n bulkDeleteInspections(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.delete<ApiResponse<BulkOperationResponse>>(`${this.basePath}/inspections`, { body: { ids } } as any);\n }\n\n // Interventions\n bulkUpdateInterventionStatus(ids: number[], status: string): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/interventions/status`, { ids, status });\n }\n\n bulkDeleteInterventions(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.delete<ApiResponse<BulkOperationResponse>>(`${this.basePath}/interventions`, { body: { ids } } as any);\n }\n\n // Maintenance Plans\n bulkUpdateMaintenancePlanStatus(ids: number[], status: string): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/maintenance-plans/status`, { ids, status });\n }\n\n bulkExecuteMaintenancePlans(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/maintenance-plans/execute`, { ids });\n }\n\n bulkDeleteMaintenancePlans(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.delete<ApiResponse<BulkOperationResponse>>(`${this.basePath}/maintenance-plans`, { body: { ids } } as any);\n }\n\n // Time Entries\n bulkApproveTimeEntries(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/time-entries/approve`, { ids });\n }\n\n bulkDeleteTimeEntries(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.delete<ApiResponse<BulkOperationResponse>>(`${this.basePath}/time-entries`, { body: { ids } } as any);\n }\n\n // Recurring Events\n bulkPauseRecurringEvents(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/recurring-events/pause`, { ids });\n }\n\n bulkResumeRecurringEvents(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/recurring-events/resume`, { ids });\n }\n\n bulkDeleteRecurringEvents(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.delete<ApiResponse<BulkOperationResponse>>(`${this.basePath}/recurring-events`, { body: { ids } } as any);\n }\n\n // Materials\n bulkUpdateMaterialStatus(ids: number[], status: string): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.put<ApiResponse<BulkOperationResponse>>(`${this.basePath}/materials/status`, { ids, status });\n }\n\n bulkDeleteMaterials(ids: number[]): Observable<ApiResponse<BulkOperationResponse>> {\n return this.http.delete<ApiResponse<BulkOperationResponse>>(`${this.basePath}/materials`, { body: { ids } } as any);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport {\n Article,\n ArticleCategory,\n ArticleTopic,\n BestPractice,\n BestPracticeCategory,\n Faq,\n FaqCategory,\n LessonLearned,\n Resource,\n ResourceCategory,\n ResourceTopic,\n Module,\n ModuleLearning,\n ModuleVideo,\n LearningModuleCategory,\n UserLearning,\n TrainingCertificate,\n} from '../../models/api/knowledge.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ArticleService extends BaseCrudService<Article> {\n protected resourcePath = '/api/articles';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ArticleCategoryService extends BaseCrudService<ArticleCategory> {\n protected resourcePath = '/api/article-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ArticleTopicService extends BaseCrudService<ArticleTopic> {\n protected resourcePath = '/api/article-topics';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class BestPracticeService extends BaseCrudService<BestPractice> {\n protected resourcePath = '/api/best-practices';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class BestPracticeCategoryService extends BaseCrudService<BestPracticeCategory> {\n protected resourcePath = '/api/best-practice-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FaqService extends BaseCrudService<Faq> {\n protected resourcePath = '/api/faqs';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FaqCategoryService extends BaseCrudService<FaqCategory> {\n protected resourcePath = '/api/faq-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LessonLearnedService extends BaseCrudService<LessonLearned> {\n protected resourcePath = '/api/lessons-learned';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResourceService extends BaseCrudService<Resource> {\n protected resourcePath = '/api/resources';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResourceCategoryService extends BaseCrudService<ResourceCategory> {\n protected resourcePath = '/api/resource-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResourceTopicService extends BaseCrudService<ResourceTopic> {\n protected resourcePath = '/api/resource-topics';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModuleService extends BaseCrudService<Module> {\n protected resourcePath = '/api/modules';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModuleLearningService extends BaseCrudService<ModuleLearning> {\n protected resourcePath = '/api/module-learnings';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModuleVideoService extends BaseCrudService<ModuleVideo> {\n protected resourcePath = '/api/module-videos';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LearningModuleCategoryService extends BaseCrudService<LearningModuleCategory> {\n protected resourcePath = '/api/learning-module-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UserLearningService extends BaseCrudService<UserLearning> {\n protected resourcePath = '/api/user-learnings';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TrainingCertificateService extends BaseCrudService<TrainingCertificate> {\n protected resourcePath = '/api/training-certificates';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { RootCauseAnalysis, SystemicRiskAssessment } from '../../models/api/quality.models';\n\n@Injectable({ providedIn: 'root' })\nexport class RootCauseAnalysisService extends BaseCrudService<RootCauseAnalysis> {\n protected resourcePath = '/api/root-cause-analyses';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SystemicRiskAssessmentService extends BaseCrudService<SystemicRiskAssessment> {\n protected resourcePath = '/api/systemic-risk-assessments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse } from '../../models/base.models';\nimport { ApprovalWorkflow, ApprovalStep, EscalationRule } from '../../models/api/workflow.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ApprovalWorkflowService {\n private basePath = '/workflows';\n\n constructor(private http: TgmHttpClient) {}\n\n create(data: Partial<ApprovalWorkflow>): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.post<ApiResponse<ApprovalWorkflow>>(this.basePath, data);\n }\n\n getById(id: number): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.get<ApiResponse<ApprovalWorkflow>>(`${this.basePath}/${id}`);\n }\n\n getSteps(id: number): Observable<ApiResponse<ApprovalStep[]>> {\n return this.http.get<ApiResponse<ApprovalStep[]>>(`${this.basePath}/${id}/steps`);\n }\n\n approve(id: number): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.post<ApiResponse<ApprovalWorkflow>>(`${this.basePath}/${id}/approve`);\n }\n\n reject(id: number): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.post<ApiResponse<ApprovalWorkflow>>(`${this.basePath}/${id}/reject`);\n }\n\n requestInfo(id: number): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.post<ApiResponse<ApprovalWorkflow>>(`${this.basePath}/${id}/request-info`);\n }\n\n delegate(id: number, body: any): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.post<ApiResponse<ApprovalWorkflow>>(`${this.basePath}/${id}/delegate`, body);\n }\n\n escalate(id: number): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.post<ApiResponse<ApprovalWorkflow>>(`${this.basePath}/${id}/escalate`);\n }\n\n cancel(id: number): Observable<ApiResponse<ApprovalWorkflow>> {\n return this.http.post<ApiResponse<ApprovalWorkflow>>(`${this.basePath}/${id}/cancel`);\n }\n\n getMyPending(): Observable<ApiResponse<ApprovalWorkflow[]>> {\n return this.http.get<ApiResponse<ApprovalWorkflow[]>>(`${this.basePath}/my-pending`);\n }\n\n getMyRequests(): Observable<ApiResponse<ApprovalWorkflow[]>> {\n return this.http.get<ApiResponse<ApprovalWorkflow[]>>(`${this.basePath}/my-requests`);\n }\n\n getByStatus(status: string): Observable<ApiResponse<ApprovalWorkflow[]>> {\n return this.http.get<ApiResponse<ApprovalWorkflow[]>>(`${this.basePath}/by-status`, {\n params: { status },\n });\n }\n\n getByType(type: string): Observable<ApiResponse<ApprovalWorkflow[]>> {\n return this.http.get<ApiResponse<ApprovalWorkflow[]>>(`${this.basePath}/by-type`, {\n params: { type },\n });\n }\n\n getByEntity(entityType: string, entityId: number): Observable<ApiResponse<ApprovalWorkflow[]>> {\n return this.http.get<ApiResponse<ApprovalWorkflow[]>>(`${this.basePath}/by-entity`, {\n params: { entityType, entityId },\n });\n }\n\n getEscalated(): Observable<ApiResponse<ApprovalWorkflow[]>> {\n return this.http.get<ApiResponse<ApprovalWorkflow[]>>(`${this.basePath}/escalated`);\n }\n\n getOverdue(): Observable<ApiResponse<ApprovalWorkflow[]>> {\n return this.http.get<ApiResponse<ApprovalWorkflow[]>>(`${this.basePath}/overdue`);\n }\n\n getDashboard(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/dashboard`);\n }\n\n getEscalationRules(): Observable<ApiResponse<EscalationRule[]>> {\n return this.http.get<ApiResponse<EscalationRule[]>>(`${this.basePath}/escalation-rules`);\n }\n\n createEscalationRule(data: Partial<EscalationRule>): Observable<ApiResponse<EscalationRule>> {\n return this.http.post<ApiResponse<EscalationRule>>(`${this.basePath}/escalation-rules`, data);\n }\n\n updateEscalationRule(id: number, data: Partial<EscalationRule>): Observable<ApiResponse<EscalationRule>> {\n return this.http.patch<ApiResponse<EscalationRule>>(`${this.basePath}/escalation-rules/${id}`, data);\n }\n\n deleteEscalationRule(id: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/escalation-rules/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { CustomFieldDefinition, CustomField, CustomForm } from '../../models/api/custom-field.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CustomFieldDefinitionService {\n private basePath = '/api/custom-field-definitions';\n\n constructor(private http: TgmHttpClient) {}\n\n getFieldTypes(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/types`);\n }\n\n getByEntityType(entityType: string, activeOnly?: boolean): Observable<ApiResponse<CustomFieldDefinition[]>> {\n return this.http.get<ApiResponse<CustomFieldDefinition[]>>(`${this.basePath}/${entityType}`, {\n params: activeOnly !== undefined ? { activeOnly } : undefined,\n });\n }\n\n getByName(entityType: string, fieldName: string): Observable<ApiResponse<CustomFieldDefinition>> {\n return this.http.get<ApiResponse<CustomFieldDefinition>>(`${this.basePath}/${entityType}/${fieldName}`);\n }\n\n create(data: Partial<CustomFieldDefinition>): Observable<ApiResponse<CustomFieldDefinition>> {\n return this.http.post<ApiResponse<CustomFieldDefinition>>(this.basePath, data);\n }\n\n update(id: number, data: Partial<CustomFieldDefinition>): Observable<ApiResponse<CustomFieldDefinition>> {\n return this.http.put<ApiResponse<CustomFieldDefinition>>(`${this.basePath}/${id}`, data);\n }\n\n checkData(id: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/${id}/check-data`);\n }\n\n delete(id: number, cleanupData?: boolean): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/${id}`, {\n params: cleanupData !== undefined ? { cleanupData } : undefined,\n });\n }\n\n toggle(id: number): Observable<ApiResponse<CustomFieldDefinition>> {\n return this.http.patch<ApiResponse<CustomFieldDefinition>>(`${this.basePath}/${id}/toggle`);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CustomFieldService extends BaseCrudService<CustomField> {\n protected resourcePath = '/api/custom-fields';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CustomFormService extends BaseCrudService<CustomForm> {\n protected resourcePath = '/api/custom-forms';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n User,\n UserCreateRequest,\n UserUpdateRequest,\n UserNotification,\n Role,\n Profile,\n ProfilePermission,\n} from '../../models/api/user.models';\n\n@Injectable({ providedIn: 'root' })\nexport class UserService extends BaseCrudService<User, UserCreateRequest, UserUpdateRequest> {\n protected resourcePath = '/api/users';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n assignLocations(userId: number, locationIds: number[]): Observable<any> {\n return this.http.put(`${this.resourcePath}/${userId}/locations`, locationIds);\n }\n\n addLocation(userId: number, locationId: number): Observable<any> {\n return this.http.post(`${this.resourcePath}/${userId}/locations/${locationId}`, {});\n }\n\n removeLocation(userId: number, locationId: number): Observable<any> {\n return this.http.delete(`${this.resourcePath}/${userId}/locations/${locationId}`);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UserProfileService {\n private basePath = '/api/users/me';\n\n constructor(private http: TgmHttpClient) {}\n\n getMyProfile(): Observable<ApiResponse<User>> {\n return this.http.get<ApiResponse<User>>(this.basePath);\n }\n\n updateMyProfile(data: Partial<User>): Observable<ApiResponse<User>> {\n return this.http.put<ApiResponse<User>>(this.basePath, data);\n }\n\n changeMyPassword(data: { currentPassword: string; newPassword: string; confirmPassword: string }): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/change-password`, data);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UserNotificationService extends BaseCrudService<UserNotification> {\n protected resourcePath = '/api/user-notifications';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n markAllRead(): Observable<ApiResponse<void>> {\n return this.http.put<ApiResponse<void>>(`${this.resourcePath}/mark-all-read`, {});\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class RoleService extends BaseCrudService<Role> {\n protected resourcePath = '/api/roles';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ProfileService extends BaseCrudService<Profile> {\n protected resourcePath = '/api/profiles';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ProfilePermissionService extends BaseCrudService<ProfilePermission> {\n protected resourcePath = '/api/profile-permissions';\n\n constructor(private httpClient: TgmHttpClient) {\n super(httpClient);\n }\n\n /**\n * Get all permissions for a specific profile.\n */\n getByProfileId(profileId: number): Observable<ApiResponse<ProfilePermission[]>> {\n return this.httpClient.get<ApiResponse<ProfilePermission[]>>(\n `${this.resourcePath}/by-profile/${profileId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CommunityPostService extends BaseCrudService<any> {\n protected resourcePath = '/api/community-posts';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CommunityCommentService extends BaseCrudService<any> {\n protected resourcePath = '/api/community-comments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FeedbackService extends BaseCrudService<any> {\n protected resourcePath = '/api/feedbacks';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { Event } from '../../models/api/misc.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventService extends BaseCrudService<Event> {\n protected resourcePath = '/api/events';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LocationService extends BaseCrudService<any> {\n protected resourcePath = '/api/locations';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class DepartmentService extends BaseCrudService<any> {\n protected resourcePath = '/api/departments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { Room } from '../../models/api/misc.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RoomService extends BaseCrudService<Room> {\n protected resourcePath = '/api/rooms';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\nimport { StrapiFile } from '../../models/api/media.models';\n\n/** Options for uploading with ref/refId linking */\nexport interface UploadWithRefOptions {\n /** Entity type reference (e.g. 'api::note.note', 'api::form.form') */\n ref: string;\n /** Entity ID to link the file to */\n refId: number;\n /** Field name on the entity (e.g. 'attachments', 'cover') */\n field: string;\n /** Optional source identifier */\n source?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UploadService {\n private basePath = '/api/upload';\n\n constructor(private http: TgmHttpClient) {}\n\n upload(file: File): Observable<ApiResponse<StrapiFile[]>> {\n const formData = new FormData();\n formData.append('files', file);\n return this.http.upload<ApiResponse<StrapiFile[]>>(this.basePath, formData);\n }\n\n uploadMultiple(files: File[]): Observable<ApiResponse<StrapiFile[]>> {\n const formData = new FormData();\n files.forEach((f) => formData.append('files', f));\n return this.http.upload<ApiResponse<StrapiFile[]>>(`${this.basePath}/multiple`, formData);\n }\n\n /**\n * Upload a file and link it to an entity via ref/refId/field.\n * Use this when you need to attach uploads to specific entities (forms, messages, rooms, etc.).\n */\n uploadWithRef(file: File, options: UploadWithRefOptions): Observable<ApiResponse<StrapiFile[]>> {\n const formData = new FormData();\n formData.append('files', file);\n formData.append('ref', options.ref);\n formData.append('refId', options.refId.toString());\n formData.append('field', options.field);\n if (options.source) {\n formData.append('source', options.source);\n }\n return this.http.upload<ApiResponse<StrapiFile[]>>(`${this.basePath}/link`, formData);\n }\n\n linkFile(data: any): Observable<ApiResponse<StrapiFile>> {\n return this.http.post<ApiResponse<StrapiFile>>(`${this.basePath}/link`, data);\n }\n\n linkExisting(fileId: number, data: any): Observable<ApiResponse<StrapiFile>> {\n return this.http.post<ApiResponse<StrapiFile>>(`${this.basePath}/files/${fileId}/link`, data);\n }\n\n unlinkFile(fileId: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/files/${fileId}/unlink`);\n }\n\n download(fileId: number): Observable<Blob> {\n return this.http.download(`${this.basePath}/files/${fileId}/download`);\n }\n\n getFileUrl(fileId: number): Observable<ApiResponse<{ url: string }>> {\n return this.http.get<ApiResponse<{ url: string }>>(`${this.basePath}/files/${fileId}/url`);\n }\n\n deleteFile(fileId: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/files/${fileId}`);\n }\n\n /**\n * List uploaded files with pagination.\n */\n list(params?: PaginationParams & Record<string, any>): Observable<PagedResponse<StrapiFile>> {\n return this.http.get<PagedResponse<StrapiFile>>(`${this.basePath}/files`, { params: params as any });\n }\n\n batchLink(data: any): Observable<ApiResponse<StrapiFile[]>> {\n return this.http.post<ApiResponse<StrapiFile[]>>(`${this.basePath}/files/batch-link`, data);\n }\n\n uploadAndLinkToNote(file: File, noteId: number): Observable<ApiResponse<StrapiFile[]>> {\n return this.uploadWithRef(file, { ref: 'api::note.note', refId: noteId, field: 'attachments' });\n }\n\n uploadForCompany(companyId: number, file: File): Observable<ApiResponse<StrapiFile[]>> {\n const formData = new FormData();\n formData.append('files', file);\n return this.http.upload<ApiResponse<StrapiFile[]>>(`${this.basePath}/company/${companyId}`, formData);\n }\n\n /**\n * Upload files using a pre-built FormData object.\n * Use this when you need to include extra metadata (ref, refId, field, source, path).\n */\n uploadFormData(formData: FormData): Observable<any> {\n return this.http.upload<any>(this.basePath, formData);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { SearchRequest, UnifiedSearchResponse, NaturalSearchResponse } from '../../models/api/search.models';\n\nexport interface SearchResult {\n id: number;\n entityType: string;\n title?: string;\n description?: string;\n highlight?: string;\n score?: number;\n}\n\nexport interface SearchResponse {\n hits: SearchResult[];\n total: number;\n query: string;\n type?: string;\n semanticSearchAvailable?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SearchService {\n private basePath = '/search';\n\n constructor(private http: TgmHttpClient) {}\n\n /** Full-text search on a specific entity type */\n search(q: string, type: string, limit = 20, offset = 0): Observable<ApiResponse<SearchResponse>> {\n return this.http.get<ApiResponse<SearchResponse>>(this.basePath, {\n params: { q, type, limit, offset },\n });\n }\n\n /** Full-text search across all entity types */\n searchAll(q: string, limitPerEntity = 5): Observable<ApiResponse<SearchResponse>> {\n return this.http.get<ApiResponse<SearchResponse>>(`${this.basePath}/all`, {\n params: { q, limitPerEntity },\n });\n }\n\n /** Auto-suggest for a specific entity type */\n suggest(q: string, type: string, limit = 10): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/suggest`, {\n params: { q, type, limit },\n });\n }\n\n /** Count search results */\n count(q: string, type: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/count`, {\n params: { q, type },\n });\n }\n\n /** Semantic search using AI embeddings */\n semanticSearch(q: string, options?: { type?: string; limit?: number; minSimilarity?: number }): Observable<ApiResponse<SearchResponse>> {\n const params: Record<string, any> = { q };\n if (options?.type) params['type'] = options.type;\n if (options?.limit) params['limit'] = options.limit;\n if (options?.minSimilarity) params['minSimilarity'] = options.minSimilarity;\n return this.http.get<ApiResponse<SearchResponse>>(`${this.basePath}/semantic`, { params });\n }\n\n /** Hybrid search combining semantic + full-text */\n hybridSearch(q: string, options?: { type?: string; limit?: number }): Observable<ApiResponse<SearchResponse>> {\n const params: Record<string, any> = { q };\n if (options?.type) params['type'] = options.type;\n if (options?.limit) params['limit'] = options.limit;\n return this.http.get<ApiResponse<SearchResponse>>(`${this.basePath}/hybrid`, { params });\n }\n\n /** Trigger full reindex of semantic search embeddings */\n reindex(): Observable<ApiResponse<string>> {\n return this.http.post<ApiResponse<string>>(`${this.basePath}/semantic/reindex`, {});\n }\n\n /** Get semantic search index statistics */\n stats(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/semantic/stats`);\n }\n\n /** Unified natural-language search — POST /api/search */\n unifiedSearch(request: SearchRequest): Observable<ApiResponse<UnifiedSearchResponse>> {\n return this.http.post<ApiResponse<UnifiedSearchResponse>>('/api/search', request);\n }\n\n /** Parse a natural-language query without executing — POST /api/search/natural */\n parseQuery(request: SearchRequest): Observable<ApiResponse<NaturalSearchResponse>> {\n return this.http.post<ApiResponse<NaturalSearchResponse>>('/api/search/natural', request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\nimport {\n AiConversation,\n AiConversationDetail,\n AiMessage,\n CreateAiConversationRequest,\n UpdateAiConversationRequest,\n} from '../../models/api/ai.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AiService {\n private basePath = '/api/ai';\n\n constructor(private http: TgmHttpClient) {}\n\n chat(request: { message: string; conversationId?: string; provider?: string; model?: string }): Observable<ApiResponse<AiMessage>> {\n return this.http.post<ApiResponse<AiMessage>>(`${this.basePath}/chat`, request);\n }\n\n getProviders(): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/providers`);\n }\n\n getProvider(code: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/providers/${code}`);\n }\n\n getStats(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/stats`);\n }\n\n getConversations(params?: PaginationParams & Record<string, any>): Observable<PagedResponse<AiConversation>> {\n return this.http.get<PagedResponse<AiConversation>>(`${this.basePath}/conversations`, {\n params: params as any,\n });\n }\n\n searchConversations(query: string): Observable<ApiResponse<AiConversation[]>> {\n return this.http.get<ApiResponse<AiConversation[]>>(`${this.basePath}/conversations/search`, {\n params: { query },\n });\n }\n\n createConversation(data: CreateAiConversationRequest): Observable<ApiResponse<AiConversation>> {\n return this.http.post<ApiResponse<AiConversation>>(`${this.basePath}/conversations`, data);\n }\n\n getConversation(id: string): Observable<ApiResponse<AiConversationDetail>> {\n return this.http.get<ApiResponse<AiConversationDetail>>(`${this.basePath}/conversations/${id}`);\n }\n\n updateConversation(id: string, data: UpdateAiConversationRequest): Observable<ApiResponse<AiConversation>> {\n return this.http.patch<ApiResponse<AiConversation>>(`${this.basePath}/conversations/${id}`, data);\n }\n\n chatInConversation(id: string, data: { message: string; provider?: string; model?: string }): Observable<ApiResponse<AiMessage>> {\n return this.http.post<ApiResponse<AiMessage>>(`${this.basePath}/conversations/${id}/chat`, data);\n }\n\n restartConversation(id: string): Observable<ApiResponse<AiConversation>> {\n return this.http.post<ApiResponse<AiConversation>>(`${this.basePath}/conversations/${id}/restart`);\n }\n\n forkConversation(id: string): Observable<ApiResponse<AiConversation>> {\n return this.http.post<ApiResponse<AiConversation>>(`${this.basePath}/conversations/${id}/fork`);\n }\n\n archiveConversation(id: string): Observable<ApiResponse<AiConversation>> {\n return this.http.post<ApiResponse<AiConversation>>(`${this.basePath}/conversations/${id}/archive`);\n }\n\n restoreConversation(id: string): Observable<ApiResponse<AiConversation>> {\n return this.http.post<ApiResponse<AiConversation>>(`${this.basePath}/conversations/${id}/restore`);\n }\n\n deleteConversation(id: string): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/conversations/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { AgentChatRequest, AgentChatResponse, AgentHealthResponse, AgentIngestionResponse } from '../../models/api/ai.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AgentService {\n private basePath = '/api/ai/agent';\n\n constructor(private http: TgmHttpClient) {}\n\n chat(request: AgentChatRequest): Observable<ApiResponse<AgentChatResponse>> {\n return this.http.post<ApiResponse<AgentChatResponse>>(`${this.basePath}/chat`, request);\n }\n\n chatInConversation(id: string, request: AgentChatRequest): Observable<ApiResponse<AgentChatResponse>> {\n return this.http.post<ApiResponse<AgentChatResponse>>(`${this.basePath}/conversations/${id}/chat`, request);\n }\n\n health(): Observable<ApiResponse<AgentHealthResponse>> {\n return this.http.get<ApiResponse<AgentHealthResponse>>(`${this.basePath}/health`);\n }\n\n ingest(): Observable<ApiResponse<AgentIngestionResponse>> {\n return this.http.post<ApiResponse<AgentIngestionResponse>>(`${this.basePath}/ingest`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SandboxService {\n private basePath = '/api/sandboxes';\n\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(this.basePath);\n }\n\n create(data: any): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(this.basePath, data);\n }\n\n getById(id: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/${id}`);\n }\n\n getBySlug(slug: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/slug/${slug}`);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/${id}`);\n }\n\n suspend(id: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/suspend`);\n }\n\n activate(id: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/activate`);\n }\n\n reset(id: number, data?: any): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/reset`, data);\n }\n\n getAccess(id: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/${id}/access`);\n }\n\n grantAccess(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/access`, data);\n }\n\n revokeAccess(id: number, userId: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/${id}/access/${userId}`);\n }\n\n generateName(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/generate-name`);\n }\n\n checkSlug(slug: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/check-slug/${slug}`);\n }\n\n getTemplates(): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/templates`);\n }\n\n getStats(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/stats`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ExtensionService {\n private basePath = '/api/extensions';\n\n constructor(private http: TgmHttpClient) {}\n\n getAll(): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(this.basePath);\n }\n\n getAvailable(): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/available`);\n }\n\n getByCompany(companyId: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/company/${companyId}`);\n }\n\n getById(id: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/${id}`);\n }\n\n enable(id: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/enable`);\n }\n\n disable(id: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/disable`);\n }\n\n updateConfig(id: number, data: any): Observable<ApiResponse<any>> {\n return this.http.put<ApiResponse<any>>(`${this.basePath}/${id}/config`, data);\n }\n\n getConfig(id: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/${id}/config`);\n }\n\n validate(id: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/validate`);\n }\n\n getEvents(id: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/${id}/events`);\n }\n\n getTasks(id: number): Observable<ApiResponse<any[]>> {\n return this.http.get<ApiResponse<any[]>>(`${this.basePath}/${id}/tasks`);\n }\n\n enableTask(id: number, taskName: string): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/tasks/${taskName}/enable`);\n }\n\n disableTask(id: number, taskName: string): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`${this.basePath}/${id}/tasks/${taskName}/disable`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class DashboardService {\n private basePath = '/dashboard';\n\n constructor(private http: TgmHttpClient) {}\n\n getKpis(periodDays?: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/kpis`, {\n params: periodDays !== undefined ? { periodDays } : undefined,\n });\n }\n\n getKpisByRange(startDate: string, endDate: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/kpis/range`, {\n params: { startDate, endDate },\n });\n }\n\n getWeeklyKpis(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/kpis/weekly`);\n }\n\n getMonthlyKpis(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/kpis/monthly`);\n }\n\n getQuarterlyKpis(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/kpis/quarterly`);\n }\n\n getYearlyKpis(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/kpis/yearly`);\n }\n\n getUnitKpis(unitId: number, periodDays?: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/units/${unitId}/kpis`, {\n params: periodDays !== undefined ? { periodDays } : undefined,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ExportService {\n private basePath = '/export';\n\n constructor(private http: TgmHttpClient) {}\n\n exportInspectionsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/inspections/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportInspectionsCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/inspections/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportInspectionsPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/inspections/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportInterventionsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/interventions/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportInterventionsCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/interventions/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportInterventionsPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/interventions/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportFailuresExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/failures/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportFailuresCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/failures/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportFailuresPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/failures/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportComponentsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/components/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportUnitsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/units/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Gate Systems ====================\n\n exportGateSystemsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/gate-systems/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportGateSystemsCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/gate-systems/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportGateSystemsPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/gate-systems/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Fish Monitoring ====================\n\n exportFishMonitoringExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/fish-monitoring/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportFishMonitoringCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/fish-monitoring/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportFishMonitoringPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/fish-monitoring/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Bathymetric Surveys ====================\n\n exportBathymetricSurveysExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/bathymetric-surveys/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportBathymetricSurveysCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/bathymetric-surveys/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportBathymetricSurveysPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/bathymetric-surveys/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Laboratory Results ====================\n\n exportLaboratoryResultsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/laboratory-results/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportLaboratoryResultsCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/laboratory-results/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportLaboratoryResultsPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/laboratory-results/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Manual Readings ====================\n\n exportManualReadingsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/manual-readings/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportManualReadingsCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/manual-readings/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportManualReadingsPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/manual-readings/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Operational Observations ====================\n\n exportOperationalObservationsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/operational-observations/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportOperationalObservationsCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/operational-observations/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportOperationalObservationsPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/operational-observations/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Regulatory Updates ====================\n\n exportRegulatoryUpdatesExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/regulatory-updates/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportRegulatoryUpdatesCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/regulatory-updates/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportRegulatoryUpdatesPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/regulatory-updates/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== AI Scenarios ====================\n\n exportAIScenariosExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/ai-scenarios/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportAIScenariosCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/ai-scenarios/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportAIScenariosPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/ai-scenarios/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n // ==================== Alert Definitions ====================\n\n exportAlertDefinitionsExcel(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/alert-definitions/excel`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportAlertDefinitionsCsv(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/alert-definitions/csv`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n\n exportAlertDefinitionsPdf(ids?: number[]): Observable<Blob> {\n return this.http.download(`${this.basePath}/alert-definitions/pdf`, {\n params: ids?.length ? { ids: ids.join(',') } : undefined,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { Todo } from '../../models/api/misc.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TodoService extends BaseCrudService<Todo> {\n protected resourcePath = '/api/todos';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n TicketRequest,\n TicketResponse,\n TicketCommentResponse,\n TicketAttachmentResponse,\n} from '../../models/admin/ticket.models';\n\n/**\n * Client-facing ticket service for regular users.\n *\n * Endpoint: `/api/tickets`\n *\n * Unlike the admin service (`/api/platform/tickets`), this is scoped\n * to the current client and only exposes create, read, and comment operations.\n * Update and delete are allowed while the ticket status is OPEN.\n */\n@Injectable({ providedIn: 'root' })\nexport class TicketService {\n private readonly basePath = '/api/tickets';\n\n constructor(private http: TgmHttpClient) {}\n\n getAll(params?: {\n status?: string;\n page?: number;\n size?: number;\n sortBy?: string;\n sortDir?: 'asc' | 'desc';\n }): Observable<{ data: TicketResponse[]; total: number; page: number; totalPages: number }> {\n return this.http.get(this.basePath, { params: params as any });\n }\n\n getById(id: number): Observable<ApiResponse<TicketResponse>> {\n return this.http.get(`${this.basePath}/${id}`);\n }\n\n create(data: TicketRequest): Observable<ApiResponse<TicketResponse>> {\n return this.http.post(this.basePath, data);\n }\n\n /**\n * Update an OPEN ticket. Returns 409 if the ticket is no longer OPEN.\n */\n update(id: number, data: Partial<TicketRequest>): Observable<ApiResponse<TicketResponse>> {\n return this.http.put(`${this.basePath}/${id}`, data);\n }\n\n /**\n * Delete (soft-delete) an OPEN ticket. Returns 409 if the ticket is no longer OPEN.\n */\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete(`${this.basePath}/${id}`);\n }\n\n getComments(id: number): Observable<{ data: TicketCommentResponse[]; total: number }> {\n return this.http.get(`${this.basePath}/${id}/comments`);\n }\n\n addComment(id: number, content: string): Observable<ApiResponse<TicketCommentResponse>> {\n return this.http.post(`${this.basePath}/${id}/comments`, { content });\n }\n\n /**\n * Upload an attachment to a ticket.\n */\n uploadAttachment(ticketId: number, file: File): Observable<ApiResponse<TicketAttachmentResponse>> {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.upload(`${this.basePath}/${ticketId}/attachments`, formData);\n }\n\n /**\n * List attachments for a ticket.\n */\n getAttachments(ticketId: number): Observable<ApiResponse<TicketAttachmentResponse[]>> {\n return this.http.get(`${this.basePath}/${ticketId}/attachments`);\n }\n\n /**\n * Delete an attachment from a ticket.\n */\n deleteAttachment(ticketId: number, attachmentId: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/${ticketId}/attachments/${attachmentId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\nimport { Note } from '../../models/api/misc.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class NoteService extends BaseCrudService<Note> {\n protected resourcePath = '/api/notes';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getEntityNotes(entityType: string, entityId: number, params?: PaginationParams): Observable<PagedResponse<Note>> {\n return this.http.get<PagedResponse<Note>>(this.resourcePath, {\n params: {\n 'entityType': entityType,\n 'entityId': entityId.toString(),\n 'sort': 'createdAt',\n 'order': 'desc',\n 'pageSize': '100',\n ...(params as any),\n },\n });\n }\n\n countEntityNotes(entityType: string, entityId: number): Observable<ApiResponse<number>> {\n return this.http.get<ApiResponse<number>>(`${this.resourcePath}/count-by-entity`, {\n params: {\n 'entityType': entityType,\n 'entityId': entityId.toString(),\n },\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LogService extends BaseCrudService<any> {\n protected resourcePath = '/api/logs';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { LoginHistory } from '../../models/api/user.models';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginHistoryService extends BaseCrudService<LoginHistory> {\n protected resourcePath = '/api/login-histories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n GateSystem,\n AlertDefinition,\n ManualReading,\n LaboratoryResult,\n FishMonitoring,\n RegulatoryUpdate,\n OperationalObservation,\n BathymetricSurvey,\n AIScenario,\n TimeSeriesQueryParams,\n TimeSeriesResponse,\n GateOperateRequest,\n AlertAcknowledgeRequest,\n ElevationStorageCurve,\n SedimentRemovalOperation,\n SedimentManagementPlan,\n TimeSeriesCoverage,\n InflowForecastResponse,\n} from '../../models/api/reservoir.models';\nimport { OperatingEvent } from '../../models/api/energy.models';\n\n@Injectable({ providedIn: 'root' })\nexport class GateSystemService extends BaseCrudService<GateSystem> {\n protected resourcePath = '/api/gate-systems';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AlertDefinitionService extends BaseCrudService<AlertDefinition> {\n protected resourcePath = '/api/alert-definitions';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ManualReadingService extends BaseCrudService<ManualReading> {\n protected resourcePath = '/api/manual-readings';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LaboratoryResultService extends BaseCrudService<LaboratoryResult> {\n protected resourcePath = '/api/laboratory-results';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FishMonitoringService extends BaseCrudService<FishMonitoring> {\n protected resourcePath = '/api/fish-monitoring';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class RegulatoryUpdateService extends BaseCrudService<RegulatoryUpdate> {\n protected resourcePath = '/api/regulatory-updates';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class OperationalObservationService extends BaseCrudService<OperationalObservation> {\n protected resourcePath = '/api/operational-observations';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class BathymetricSurveyService extends BaseCrudService<BathymetricSurvey> {\n protected resourcePath = '/api/bathymetric-surveys';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AIScenarioService extends BaseCrudService<AIScenario> {\n protected resourcePath = '/api/ai-scenarios';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ReservoirTimeSeriesService {\n constructor(private http: TgmHttpClient) {}\n\n getSensorTimeSeries(reservoirId: string, metric: string, params: TimeSeriesQueryParams): Observable<ApiResponse<TimeSeriesResponse>> {\n return this.http.get<ApiResponse<TimeSeriesResponse>>(\n `/api/reservoirs/${reservoirId}/timeseries/sensors/${metric}`,\n { params: params as any }\n );\n }\n\n getWeatherTimeSeries(reservoirId: string, params: TimeSeriesQueryParams): Observable<ApiResponse<TimeSeriesResponse>> {\n return this.http.get<ApiResponse<TimeSeriesResponse>>(\n `/api/reservoirs/${reservoirId}/timeseries/weather`,\n { params: params as any }\n );\n }\n\n getWeatherForecast(reservoirId: string, params: TimeSeriesQueryParams): Observable<ApiResponse<TimeSeriesResponse>> {\n return this.http.get<ApiResponse<TimeSeriesResponse>>(\n `/api/reservoirs/${reservoirId}/timeseries/weather/forecast`,\n { params: params as any }\n );\n }\n\n getGridMarketTimeSeries(reservoirId: string, params: TimeSeriesQueryParams): Observable<ApiResponse<TimeSeriesResponse>> {\n return this.http.get<ApiResponse<TimeSeriesResponse>>(\n `/api/reservoirs/${reservoirId}/timeseries/grid-market`,\n { params: params as any }\n );\n }\n\n getGridMarketForecast(reservoirId: string, params: TimeSeriesQueryParams): Observable<ApiResponse<TimeSeriesResponse>> {\n return this.http.get<ApiResponse<TimeSeriesResponse>>(\n `/api/reservoirs/${reservoirId}/timeseries/grid-market/forecast`,\n { params: params as any }\n );\n }\n\n getGateOperations(gateId: string, params: TimeSeriesQueryParams): Observable<ApiResponse<TimeSeriesResponse>> {\n return this.http.get<ApiResponse<TimeSeriesResponse>>(\n `/api/gates/${gateId}/timeseries/operations`,\n { params: params as any }\n );\n }\n\n getCoverage(reservoirId: number, metric: string): Observable<ApiResponse<TimeSeriesCoverage>> {\n return this.http.get<ApiResponse<TimeSeriesCoverage>>(\n `/api/reservoirs/${reservoirId}/timeseries/sensors/${metric}/coverage`\n );\n }\n\n getInflowForecast(reservoirId: number, params: { start: string; end: string; interval?: string; model?: string; runId?: string }): Observable<ApiResponse<InflowForecastResponse>> {\n return this.http.get<ApiResponse<InflowForecastResponse>>(\n `/api/reservoirs/${reservoirId}/timeseries/inflow/forecast`,\n { params: params as any }\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GateControlService {\n constructor(private http: TgmHttpClient) {}\n\n operateGate(gateId: string, request: GateOperateRequest): Observable<ApiResponse<OperatingEvent>> {\n return this.http.post<ApiResponse<OperatingEvent>>(\n `/api/gates/${gateId}/operate`,\n request\n );\n }\n\n acknowledgeAlert(alertId: number, request: AlertAcknowledgeRequest): Observable<ApiResponse<OperatingEvent>> {\n return this.http.post<ApiResponse<OperatingEvent>>(\n `/api/alerts/${alertId}/acknowledge`,\n request\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ElevationStorageCurveService extends BaseCrudService<ElevationStorageCurve> {\n protected resourcePath = '/api/elevation-storage-curves';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SedimentRemovalOperationService extends BaseCrudService<SedimentRemovalOperation> {\n protected resourcePath = '/api/sediment-removal-operations';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SedimentManagementPlanService extends BaseCrudService<SedimentManagementPlan> {\n protected resourcePath = '/api/sediment-management-plans';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getByLocationId(locationId: number): Observable<ApiResponse<SedimentManagementPlan>> {\n return this.http.get<ApiResponse<SedimentManagementPlan>>(\n `${this.resourcePath}/location/${locationId}`\n );\n }\n\n updateByLocationId(locationId: number, data: any): Observable<ApiResponse<SedimentManagementPlan>> {\n return this.http.put<ApiResponse<SedimentManagementPlan>>(\n `${this.resourcePath}/location/${locationId}`,\n data\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport {\n JobTitle, Country, Supplier, Font, Incident, Message,\n KpiEvent, TurbineType, TermsOfUse, UnitShutdownHistory, Property,\n PropertiesGroup, PropertiesTemplate, Measurement, MiHistory, MiRequest,\n RechargeRequest, Refurbishment, LoginRequest2, MaintenanceJsa, JsaItem,\n JsaStep, ComponentChecklist, ComponentChecklistGroup, ComponentChecklistTemplate,\n} from '../../models/api/misc.models';\nimport { Form, FormCategory } from '../../models/api/document.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class JobTitleService extends BaseCrudService<JobTitle> {\n protected resourcePath = '/api/job-titles';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CountryService extends BaseCrudService<Country> {\n protected resourcePath = '/api/countries';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SupplierService extends BaseCrudService<Supplier> {\n protected resourcePath = '/api/suppliers';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FontService extends BaseCrudService<Font> {\n protected resourcePath = '/api/fonts';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormService extends BaseCrudService<Form> {\n protected resourcePath = '/api/forms';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormCategoryService extends BaseCrudService<FormCategory> {\n protected resourcePath = '/api/form-categories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class IncidentService extends BaseCrudService<Incident> {\n protected resourcePath = '/api/incidents';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MessageService extends BaseCrudService<Message> {\n protected resourcePath = '/api/messages';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class KpiEventService extends BaseCrudService<KpiEvent> {\n protected resourcePath = '/api/kpi-events';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TurbineTypeService extends BaseCrudService<TurbineType> {\n protected resourcePath = '/api/turbine-types';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TermsOfUseService extends BaseCrudService<TermsOfUse> {\n protected resourcePath = '/api/terms-of-use';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UnitShutdownHistoryService extends BaseCrudService<UnitShutdownHistory> {\n protected resourcePath = '/api/unit-shutdown-histories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PropertyService extends BaseCrudService<Property> {\n protected resourcePath = '/api/properties';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PropertiesGroupService extends BaseCrudService<PropertiesGroup> {\n protected resourcePath = '/api/properties-groups';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PropertiesTemplateService extends BaseCrudService<PropertiesTemplate> {\n protected resourcePath = '/api/properties-templates';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MeasurementService extends BaseCrudService<Measurement> {\n protected resourcePath = '/api/measurements';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MiHistoryService extends BaseCrudService<MiHistory> {\n protected resourcePath = '/api/mi-histories';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MiRequestService extends BaseCrudService<MiRequest> {\n protected resourcePath = '/api/mi-requests';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class RechargeRequestService extends BaseCrudService<RechargeRequest> {\n protected resourcePath = '/api/recharge-requests';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class RefurbishmentService extends BaseCrudService<Refurbishment> {\n protected resourcePath = '/api/refurbishments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LoginRequestService extends BaseCrudService<LoginRequest2> {\n protected resourcePath = '/api/login-requests';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MaintenanceJsaService extends BaseCrudService<MaintenanceJsa> {\n protected resourcePath = '/api/maintenance-jsas';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class JsaItemService extends BaseCrudService<JsaItem> {\n protected resourcePath = '/api/jsa-items';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class JsaStepService extends BaseCrudService<JsaStep> {\n protected resourcePath = '/api/jsa-steps';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentChecklistService extends BaseCrudService<ComponentChecklist> {\n protected resourcePath = '/api/component-checklists';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentChecklistGroupService extends BaseCrudService<ComponentChecklistGroup> {\n protected resourcePath = '/api/component-checklist-groups';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentChecklistTemplateService extends BaseCrudService<ComponentChecklistTemplate> {\n protected resourcePath = '/api/component-checklist-templates';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ClientArticle } from '../../models/api/media.models';\nimport { ApiResponse, PagedResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ClientArticleService extends BaseCrudService<ClientArticle> {\n protected resourcePath = '/api/articles';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getBySlug(slug: string): Observable<ApiResponse<ClientArticle>> {\n return this.http.get<ApiResponse<ClientArticle>>(`${this.resourcePath}/slug/${slug}`);\n }\n\n getFeatured(): Observable<PagedResponse<ClientArticle>> {\n return this.http.get<PagedResponse<ClientArticle>>(`${this.resourcePath}/featured`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport {\n ConditionAssessmentTest,\n CatPlanningEquipmentItem,\n CatPersonnelAssignment,\n CatExecutionResult,\n CatSignOff,\n CatAttachment,\n} from '../../models/api/cat.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ConditionAssessmentTestService extends BaseCrudService<ConditionAssessmentTest> {\n protected resourcePath = '/api/condition-assessment-tests';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CatPlanningEquipmentItemService extends BaseCrudService<CatPlanningEquipmentItem> {\n protected resourcePath = '/api/cat-planning-equipment-items';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CatPersonnelAssignmentService extends BaseCrudService<CatPersonnelAssignment> {\n protected resourcePath = '/api/cat-personnel-assignments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CatExecutionResultService extends BaseCrudService<CatExecutionResult> {\n protected resourcePath = '/api/cat-execution-results';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CatSignOffService extends BaseCrudService<CatSignOff> {\n protected resourcePath = '/api/cat-sign-offs';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CatAttachmentService extends BaseCrudService<CatAttachment> {\n protected resourcePath = '/api/cat-attachments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { MaintenancePlan } from '../../models/api/maintenance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MaintenancePlanService extends BaseCrudService<MaintenancePlan> {\n protected resourcePath = '/api/maintenance-plans';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { RecurringEvent } from '../../models/api/maintenance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class RecurringEventService extends BaseCrudService<RecurringEvent> {\n protected resourcePath = '/api/recurring-events';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { TimeEntry } from '../../models/api/maintenance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class TimeEntryService extends BaseCrudService<TimeEntry> {\n protected resourcePath = '/api/time-entries';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ServiceLevelAgreement } from '../../models/api/maintenance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SlaPolicyService extends BaseCrudService<ServiceLevelAgreement> {\n protected resourcePath = '/api/sla';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\nimport { AssetLifecycle, LifecycleEvent } from '../../models/api/maintenance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AssetLifecycleService {\n private basePath = '/asset-lifecycle';\n\n constructor(private http: TgmHttpClient) {}\n\n getAll(params?: PaginationParams & Record<string, any>): Observable<PagedResponse<AssetLifecycle>> {\n return this.http.get<PagedResponse<AssetLifecycle>>('/api/asset-lifecycles', {\n params: params as any,\n });\n }\n\n create(componentId: number, data: Partial<AssetLifecycle>): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.post<ApiResponse<AssetLifecycle>>(`${this.basePath}/component/${componentId}`, data);\n }\n\n getByComponent(componentId: number): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.get<ApiResponse<AssetLifecycle>>(`${this.basePath}/component/${componentId}`);\n }\n\n update(lifecycleId: number, data: Partial<AssetLifecycle>): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.patch<ApiResponse<AssetLifecycle>>(`${this.basePath}/${lifecycleId}`, data);\n }\n\n transition(lifecycleId: number, newStage: string): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.post<ApiResponse<AssetLifecycle>>(`${this.basePath}/${lifecycleId}/transition`, null, {\n params: { newStage },\n });\n }\n\n assess(lifecycleId: number, data: Record<string, any>): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.post<ApiResponse<AssetLifecycle>>(`${this.basePath}/${lifecycleId}/assess`, data);\n }\n\n calculateMetrics(lifecycleId: number): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.post<ApiResponse<AssetLifecycle>>(`${this.basePath}/${lifecycleId}/calculate-metrics`, null);\n }\n\n calculateDepreciation(lifecycleId: number): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.post<ApiResponse<AssetLifecycle>>(`${this.basePath}/${lifecycleId}/calculate-depreciation`, null);\n }\n\n getEvents(lifecycleId: number, params?: PaginationParams): Observable<PagedResponse<LifecycleEvent>> {\n return this.http.get<PagedResponse<LifecycleEvent>>(`${this.basePath}/${lifecycleId}/events`, {\n params: params as any,\n });\n }\n\n getByStage(stage: string): Observable<ApiResponse<AssetLifecycle[]>> {\n return this.http.get<ApiResponse<AssetLifecycle[]>>(`${this.basePath}/by-stage`, {\n params: { stage },\n });\n }\n\n getApproachingEndOfLife(monthsAhead?: number): Observable<ApiResponse<AssetLifecycle[]>> {\n return this.http.get<ApiResponse<AssetLifecycle[]>>(`${this.basePath}/approaching-end-of-life`, {\n params: monthsAhead != null ? { monthsAhead } : {},\n });\n }\n\n getLowHealth(threshold?: number): Observable<ApiResponse<AssetLifecycle[]>> {\n return this.http.get<ApiResponse<AssetLifecycle[]>>(`${this.basePath}/low-health`, {\n params: threshold != null ? { threshold } : {},\n });\n }\n\n getRecommendedReplacement(): Observable<ApiResponse<AssetLifecycle[]>> {\n return this.http.get<ApiResponse<AssetLifecycle[]>>(`${this.basePath}/recommended-replacement`);\n }\n\n getDashboard(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/dashboard`);\n }\n\n getStageEnums(): Observable<ApiResponse<string[]>> {\n return this.http.get<ApiResponse<string[]>>(`${this.basePath}/enums/stages`);\n }\n\n /** Create a lifecycle record via the collection endpoint (wraps data in { data } if needed) */\n createRecord(data: Record<string, any>): Observable<ApiResponse<AssetLifecycle>> {\n return this.http.post<ApiResponse<AssetLifecycle>>('/api/asset-lifecycles', { data });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { InactiveComponent } from '../../models/api/component.models';\n\n@Injectable({ providedIn: 'root' })\nexport class InactiveComponentService extends BaseCrudService<InactiveComponent> {\n protected resourcePath = '/api/inactive-components';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ComponentLocation } from '../../models/api/component.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentLocationService extends BaseCrudService<ComponentLocation> {\n protected resourcePath = '/api/component-locations';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ComponentInfo } from '../../models/api/component.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentInfoService extends BaseCrudService<ComponentInfo> {\n protected resourcePath = '/api/component-infos';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { CompanyMaterialType } from '../../models/api/company.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CompanyMaterialTypeService extends BaseCrudService<CompanyMaterialType> {\n protected resourcePath = '/api/company-material-types';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CompanyMaterialService extends BaseCrudService<any> {\n protected resourcePath = '/api/company-materials';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class WarehouseService extends BaseCrudService<any> {\n protected resourcePath = '/api/warehouses';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class WarehouseStockService extends BaseCrudService<any> {\n protected resourcePath = '/api/warehouse-stocks';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PurchaseOrderService extends BaseCrudService<any> {\n protected resourcePath = '/api/purchase-orders';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GoodsReceiptService extends BaseCrudService<any> {\n protected resourcePath = '/api/goods-receipts';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class StockMovementService extends BaseCrudService<any> {\n protected resourcePath = '/api/stock-movements';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class StockCountService extends BaseCrudService<any> {\n protected resourcePath = '/api/stock-counts';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { License, LicenseInfo } from '../../models/api/company.models';\n\n@Injectable({ providedIn: 'root' })\nexport class LicenseService {\n constructor(private http: TgmHttpClient) {}\n\n getInfo(): Observable<ApiResponse<LicenseInfo>> {\n return this.http.get<ApiResponse<LicenseInfo>>('/custom/license-info');\n }\n\n getStatus(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>('/custom/license-status');\n }\n\n update(licenseKey: string): Observable<ApiResponse<License>> {\n return this.http.put<ApiResponse<License>>('/custom/xywezelicense', { licenseKey });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { WorkPermit } from '../../models/api/work-permit.models';\n\n@Injectable({ providedIn: 'root' })\nexport class WorkPermitService extends BaseCrudService<WorkPermit> {\n protected resourcePath = '/api/work-permits';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n DiagnosticReport,\n DiagnosticReportCreateRequest,\n DiagnosticReportUpdateRequest,\n} from '../../models/api/diagnostic-report.models';\n\n@Injectable({ providedIn: 'root' })\nexport class DiagnosticReportService extends BaseCrudService<\n DiagnosticReport,\n DiagnosticReportCreateRequest,\n DiagnosticReportUpdateRequest\n> {\n protected resourcePath = '/api/diagnostic-reports';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getByMaintenanceRecord(maintenanceRecordId: number): Observable<ApiResponse<DiagnosticReport[]>> {\n return this.http.get<ApiResponse<DiagnosticReport[]>>(\n `${this.resourcePath}/by-maintenance-record/${maintenanceRecordId}`\n );\n }\n\n getByComponent(componentId: number): Observable<ApiResponse<DiagnosticReport[]>> {\n return this.http.get<ApiResponse<DiagnosticReport[]>>(\n `${this.resourcePath}/by-component/${componentId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CustomService {\n constructor(private http: TgmHttpClient) {}\n\n changePassword(data: { currentPassword: string; newPassword: string; confirmPassword: string }): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>('/custom/change-password', data);\n }\n\n getLicenseInfo(): Observable<any> {\n return this.http.get<any>('/custom/license-info');\n }\n\n updateLicense(data: any): Observable<any> {\n return this.http.put<any>('/custom/xywezelicense', data);\n }\n\n createLicense(data: any): Observable<any> {\n return this.http.post<any>('/custom/xywezeplicense', data);\n }\n\n getLicenseStatus(): Observable<any> {\n return this.http.get<any>('/custom/license-status');\n }\n\n queryInflux(query: any): Observable<any> {\n return this.http.post<any>('/custom/query-influx', query);\n }\n\n querySql(query: any): Observable<any> {\n return this.http.post<any>('/custom/query-sql', query);\n }\n\n aiChat(data: any): Observable<any> {\n return this.http.post<any>('/custom/ai/chat', data);\n }\n\n aiFeedback(data: any): Observable<any> {\n return this.http.post<any>('/custom/ai/feedback', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class DigitalTwinService extends BaseCrudService<any> {\n protected resourcePath = '/api/digital-twins';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModelService extends BaseCrudService<any> {\n protected resourcePath = '/api/models';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModelFileService extends BaseCrudService<any> {\n protected resourcePath = '/api/model-files';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PermissionService {\n constructor(private http: TgmHttpClient) {}\n\n getAllPermissions(params?: any): Observable<any> {\n return this.http.get<any>('/api/users-permissions/permissions', { params });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\n\n/**\n * Generic CRUD service for dynamic endpoints where the resource path\n * is determined at runtime (e.g., CSV import, dynamic data loading).\n *\n * Usage:\n * this._dynamicCrud.getAll('components', { populate: '*' })\n * this._dynamicCrud.getById('sensors', 42)\n * this._dynamicCrud.create('units', payload)\n * this._dynamicCrud.update('units', 5, payload)\n * this._dynamicCrud.delete('units', 5)\n */\n@Injectable({ providedIn: 'root' })\nexport class DynamicCrudService {\n\n constructor(private http: TgmHttpClient) {}\n\n /** GET /api/{collection} with optional params */\n getAll(collection: string, params?: PaginationParams & Record<string, any>): Observable<PagedResponse<any>> {\n return this.http.get<PagedResponse<any>>(`/api/${collection}`, { params: params as any });\n }\n\n /** GET /api/{collection}/{id} */\n getById(collection: string, id: number | string, params?: Record<string, any>): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`/api/${collection}/${id}`, { params: params as any });\n }\n\n /** POST /api/{collection} */\n create(collection: string, data: any): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(`/api/${collection}`, data);\n }\n\n /** PUT /api/{collection}/{id} */\n update(collection: string, id: number | string, data: any): Observable<ApiResponse<any>> {\n return this.http.put<ApiResponse<any>>(`/api/${collection}/${id}`, data);\n }\n\n /** DELETE /api/{collection}/{id} */\n remove(collection: string, id: number | string): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`/api/${collection}/${id}`);\n }\n\n /** Generic GET for any path */\n get<T = any>(path: string, params?: Record<string, any>): Observable<T> {\n return this.http.get<T>(path, { params: params as any });\n }\n\n /** Generic POST for any path */\n post<T = any>(path: string, data?: any): Observable<T> {\n return this.http.post<T>(path, data);\n }\n\n /** Generic PUT for any path */\n put<T = any>(path: string, data?: any): Observable<T> {\n return this.http.put<T>(path, data);\n }\n\n /** Upload FormData to any path */\n upload<T = any>(path: string, formData: FormData): Observable<T> {\n return this.http.upload<T>(path, formData);\n }\n\n /** Download blob from any path */\n download(path: string): Observable<Blob> {\n return this.http.download(path);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n/**\n * WorkOrderService — alias for MaintenanceRecordService.\n * Work Orders were migrated to Maintenance Records in the backend.\n * This service provides backward compatibility + custom query methods.\n */\n@Injectable({ providedIn: 'root' })\nexport class WorkOrderService extends BaseCrudService<any> {\n protected resourcePath = '/api/maintenance-records';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getByUnit(unitId: number | string): Observable<any> {\n return this.getAll({ 'unit.id': String(unitId) } as any);\n }\n\n getByStatus(status: string): Observable<any> {\n return this.getAll({ status } as any);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PlantDataService {\n constructor(private http: TgmHttpClient) {}\n\n getUnits(): Observable<any> {\n return this.http.get<any>('/api/plant-data/units');\n }\n\n getUnit(unitId: number | string): Observable<any> {\n return this.http.get<any>(`/api/plant-data/units/${unitId}`);\n }\n\n getActiveAlerts(): Observable<any> {\n return this.http.get<any>('/api/plant-data/alerts/active');\n }\n\n getWaterManagement(): Observable<any> {\n return this.http.get<any>('/api/plant-data/water-management');\n }\n\n acknowledgeAlert(alertId: number | string): Observable<any> {\n return this.http.post(`/api/plant-data/alerts/${alertId}/acknowledge`, {});\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ReservoirDataService {\n constructor(private http: TgmHttpClient) {}\n\n getPlantData(plantId: number | string): Observable<any> {\n return this.http.get<any>(`/api/reservoir-data/${plantId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AiFeedbackService extends BaseCrudService<any> {\n protected resourcePath = '/api/ai-feedbacks';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { DeviceGateway } from '../../models/api/iot.models';\nimport { ApiResponse, PagedResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class DeviceGatewayService extends BaseCrudService<DeviceGateway> {\n protected resourcePath = '/api/device-gateways';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getActive(): Observable<PagedResponse<DeviceGateway>> {\n return this.http.get<PagedResponse<DeviceGateway>>(`${this.resourcePath}`, {\n params: { isActive: true } as any,\n });\n }\n\n getByProtocol(protocol: string): Observable<PagedResponse<DeviceGateway>> {\n return this.http.get<PagedResponse<DeviceGateway>>(`${this.resourcePath}`, {\n params: { protocol } as any,\n });\n }\n\n heartbeat(id: number): Observable<ApiResponse<DeviceGateway>> {\n return this.http.post<ApiResponse<DeviceGateway>>(`${this.resourcePath}/${id}/heartbeat`);\n }\n\n getStale(): Observable<PagedResponse<DeviceGateway>> {\n return this.http.get<PagedResponse<DeviceGateway>>(`${this.resourcePath}/stale`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { OutageResource } from '../../models/api/energy.models';\nimport { ApiResponse, PagedResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class OutageResourceService extends BaseCrudService<OutageResource> {\n protected resourcePath = '/api/outage-resources';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n getByOutage(outageEventId: number): Observable<PagedResponse<OutageResource>> {\n return this.http.get<PagedResponse<OutageResource>>(`${this.resourcePath}`, {\n params: { 'outageEvent.id': outageEventId } as any,\n });\n }\n\n updateStatus(id: number, status: string): Observable<ApiResponse<OutageResource>> {\n return this.http.patch<ApiResponse<OutageResource>>(`${this.resourcePath}/${id}/status`, { status });\n }\n\n logHours(id: number, hours: number): Observable<ApiResponse<OutageResource>> {\n return this.http.patch<ApiResponse<OutageResource>>(`${this.resourcePath}/${id}/log-hours`, { hours });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { EnergyProduction } from '../../models/api/energy.models';\n\n@Injectable({ providedIn: 'root' })\nexport class EnergyProductionService extends BaseCrudService<EnergyProduction> {\n protected resourcePath = '/api/energy-productions';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class EnergyAnalyticsService {\n private basePath = '/api/energy-analytics';\n\n constructor(private http: TgmHttpClient) {}\n\n getAvailability(unitId: number, start: string, end: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/availability`, {\n params: { unitId, start, end } as any,\n });\n }\n\n getCostPerMwh(unitId: number, start: string, end: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/cost-per-mwh`, {\n params: { unitId, start, end } as any,\n });\n }\n\n getCurtailmentImpact(start: string, end: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/curtailment-impact`, {\n params: { start, end } as any,\n });\n }\n\n getKpiDashboard(start: string, end: string): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/kpi-dashboard`, {\n params: { start, end } as any,\n });\n }\n\n getTrends(unitId: number, periodType: string, periods: number): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/trends`, {\n params: { unitId, periodType, periods } as any,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { MeasurementUnit } from '../../models/api/misc.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MeasurementUnitService extends BaseCrudService<MeasurementUnit> {\n protected resourcePath = '/api/measurement-units';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { PropertyTemplate } from '../../models/api/misc.models';\nimport { BaseCrudService } from './base-crud.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PropertyTemplateService extends BaseCrudService<PropertyTemplate> {\n protected resourcePath = '/api/property-templates';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n AipSettings,\n AipAssessment,\n InvestmentOption,\n AipPlan,\n AipScenario,\n AipOverview,\n GeneratePlanRequest,\n AipResourceConstraint,\n AipNetworkNode,\n AipPerformanceRecord,\n RecordActualsRequest,\n} from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipSettingsService extends BaseCrudService<AipSettings> {\n protected resourcePath = '/api/aip/settings';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AipAssessmentService extends BaseCrudService<AipAssessment> {\n protected resourcePath = '/api/aip/assessments';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class InvestmentOptionService extends BaseCrudService<InvestmentOption> {\n protected resourcePath = '/api/aip/investment-options';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AipPlanService extends BaseCrudService<AipPlan> {\n protected resourcePath = '/api/aip/plans';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AipScenarioService extends BaseCrudService<AipScenario> {\n protected resourcePath = '/api/aip/scenarios';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AipResourceConstraintService extends BaseCrudService<AipResourceConstraint> {\n protected resourcePath = '/api/aip/resource-constraints';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AipNetworkNodeService extends BaseCrudService<AipNetworkNode> {\n protected resourcePath = '/api/aip/network-nodes';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AipPerformanceRecordService extends BaseCrudService<AipPerformanceRecord> {\n protected resourcePath = '/api/aip/performance-records';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AipAnalysisService {\n private basePath = '/api/aip';\n\n constructor(private http: TgmHttpClient) {}\n\n analyzeLocation(locationId: number): Observable<any> {\n return this.http.post<any>(`${this.basePath}/analyze/${locationId}`);\n }\n\n getOverview(locationId: number): Observable<ApiResponse<AipOverview>> {\n return this.http.get<ApiResponse<AipOverview>>(`${this.basePath}/overview/${locationId}`);\n }\n\n // --- Phase 2: Multi-Year Plan ---\n\n generatePlan(request: GeneratePlanRequest): Observable<ApiResponse<AipPlan>> {\n return this.http.post<ApiResponse<AipPlan>>(`${this.basePath}/plans/generate`, request);\n }\n\n // --- Phase 2: Scenarios ---\n\n generateScenarios(planId: number): Observable<ApiResponse<AipScenario[]>> {\n return this.http.post<ApiResponse<AipScenario[]>>(`${this.basePath}/scenarios/generate/${planId}`, {});\n }\n\n // --- Phase 2: Financial Analysis ---\n\n analyzeFinancial(optionId: number): Observable<ApiResponse<InvestmentOption>> {\n return this.http.post<ApiResponse<InvestmentOption>>(`${this.basePath}/financial/analyze/${optionId}`, {});\n }\n\n analyzeAllFinancial(assessmentId: number): Observable<ApiResponse<InvestmentOption[]>> {\n return this.http.post<ApiResponse<InvestmentOption[]>>(`${this.basePath}/financial/analyze-all/${assessmentId}`, {});\n }\n\n // --- Phase 3: Resource Constraints ---\n\n validateResources(planId: number): Observable<any> {\n return this.http.post<any>(`${this.basePath}/resources/validate/${planId}`, {});\n }\n\n levelResources(planId: number): Observable<any> {\n return this.http.post<any>(`${this.basePath}/resources/level/${planId}`, {});\n }\n\n // --- Phase 3: Network Analysis ---\n\n validateNetwork(locationId: number): Observable<any> {\n return this.http.post<any>(`${this.basePath}/network/validate/${locationId}`, {});\n }\n\n checkCapacity(locationId: number, additionalMw: number): Observable<any> {\n return this.http.get<any>(`${this.basePath}/network/check-capacity/${locationId}`, {\n params: { additionalMw } as any,\n });\n }\n\n // --- Phase 3: Performance Tracking ---\n\n recordActuals(optionId: number, request: RecordActualsRequest): Observable<any> {\n return this.http.post<any>(`${this.basePath}/performance/record-actuals/${optionId}`, request);\n }\n\n getCalibration(locationId: number): Observable<any> {\n return this.http.get<any>(`${this.basePath}/performance/calibration/${locationId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n DeferralEvaluation,\n DeferralConstraintRule,\n EvaluateDeferralRequest,\n ConstraintCheckResult,\n} from '../../models/api/deferral.models';\n\n@Injectable({ providedIn: 'root' })\nexport class DeferralEvaluationService extends BaseCrudService<DeferralEvaluation> {\n protected resourcePath = '/api/deferral/evaluations';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DeferralConstraintRuleService extends BaseCrudService<DeferralConstraintRule> {\n protected resourcePath = '/api/deferral/constraint-rules';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DeferralDecisionService {\n private basePath = '/api/deferral';\n\n constructor(private http: TgmHttpClient) {}\n\n evaluate(request: EvaluateDeferralRequest): Observable<ApiResponse<DeferralEvaluation>> {\n return this.http.post<ApiResponse<DeferralEvaluation>>(`${this.basePath}/evaluate`, request);\n }\n\n acceptDecision(evaluationId: number): Observable<ApiResponse<DeferralEvaluation>> {\n return this.http.post<ApiResponse<DeferralEvaluation>>(`${this.basePath}/evaluations/${evaluationId}/accept`, {});\n }\n\n overrideDecision(evaluationId: number, reason: string): Observable<ApiResponse<DeferralEvaluation>> {\n return this.http.post<ApiResponse<DeferralEvaluation>>(`${this.basePath}/evaluations/${evaluationId}/override`, { reason });\n }\n\n checkConstraints(unitId: number): Observable<ApiResponse<ConstraintCheckResult[]>> {\n return this.http.get<ApiResponse<ConstraintCheckResult[]>>(`${this.basePath}/constraints/check/${unitId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CortexService {\n private basePath = '/api/cortex';\n\n constructor(private http: TgmHttpClient) {}\n\n getStatus(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/status`);\n }\n\n buildGraph(locationId: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(\n `${this.basePath}/build-graph/${locationId}`,\n {}\n );\n }\n\n analyze(locationId: number): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(\n `${this.basePath}/analyze/${locationId}`,\n {}\n );\n }\n\n getGraphSummary(): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.basePath}/graph-summary`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { CortexNode } from '../../models/api/cortex-node.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CortexNodeService extends BaseCrudService<CortexNode> {\n protected resourcePath = '/api/cortex/nodes';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { CortexEvent } from '../../models/api/cortex-event.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CortexEventService extends BaseCrudService<CortexEvent> {\n protected resourcePath = '/api/cortex/events';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { CortexInsight } from '../../models/api/cortex-insight.models';\n\n@Injectable({ providedIn: 'root' })\nexport class CortexInsightService extends BaseCrudService<CortexInsight> {\n protected resourcePath = '/api/cortex/insights';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n\n acknowledge(id: number): Observable<ApiResponse<CortexInsight>> {\n return this.http.post<ApiResponse<CortexInsight>>(\n `${this.resourcePath}/${id}/acknowledge`,\n {}\n );\n }\n\n sendFeedback(id: number, feedback: 'helpful' | 'not_helpful'): Observable<ApiResponse<CortexInsight>> {\n return this.http.post<ApiResponse<CortexInsight>>(\n `${this.resourcePath}/${id}/feedback`,\n { feedback }\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { RiskMetrics } from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipRiskAnalysisService {\n private basePath = '/api/aip';\n\n constructor(private http: TgmHttpClient) {}\n\n getRiskMetrics(assessmentId: number): Observable<ApiResponse<RiskMetrics>> {\n return this.http.get<ApiResponse<RiskMetrics>>(\n `${this.basePath}/analysis/assets/${assessmentId}/risk-metrics`\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n CostBenefitAnalysis,\n LifecycleCostAnalysis,\n SensitivityAnalysis,\n PortfolioFinancialMetrics,\n} from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipFinancialService {\n private basePath = '/api/aip/financial';\n\n constructor(private http: TgmHttpClient) {}\n\n getCostBenefitAnalysis(optionId: number): Observable<ApiResponse<CostBenefitAnalysis>> {\n return this.http.get<ApiResponse<CostBenefitAnalysis>>(\n `${this.basePath}/investments/${optionId}/cba`\n );\n }\n\n getLifecycleCostAnalysis(optionId: number): Observable<ApiResponse<LifecycleCostAnalysis>> {\n return this.http.get<ApiResponse<LifecycleCostAnalysis>>(\n `${this.basePath}/investments/${optionId}/lca`\n );\n }\n\n getSensitivityAnalysis(optionId: number): Observable<ApiResponse<SensitivityAnalysis>> {\n return this.http.get<ApiResponse<SensitivityAnalysis>>(\n `${this.basePath}/investments/${optionId}/sensitivity`\n );\n }\n\n getPortfolioMetrics(locationId: number): Observable<ApiResponse<PortfolioFinancialMetrics>> {\n return this.http.get<ApiResponse<PortfolioFinancialMetrics>>(\n `${this.basePath}/portfolio/${locationId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n WorkflowDefinition,\n PendingApproval,\n DecisionMetrics,\n} from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipWorkflowService {\n private basePath = '/api/aip/workflow';\n\n constructor(private http: TgmHttpClient) {}\n\n getDefinitions(): Observable<ApiResponse<WorkflowDefinition[]>> {\n return this.http.get<ApiResponse<WorkflowDefinition[]>>(\n `${this.basePath}/definitions`\n );\n }\n\n getPendingApprovals(): Observable<ApiResponse<PendingApproval[]>> {\n return this.http.get<ApiResponse<PendingApproval[]>>(\n `${this.basePath}/pending`\n );\n }\n\n getDecisionMetrics(): Observable<ApiResponse<DecisionMetrics>> {\n return this.http.get<ApiResponse<DecisionMetrics>>(\n `${this.basePath}/metrics`\n );\n }\n\n submitForApproval(body: { investmentOptionId: number; definitionId: number; submitter: string }): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(\n `${this.basePath}/submit`,\n body\n );\n }\n\n advanceStage(instanceId: number, body: { decision: string; approver: string }): Observable<ApiResponse<any>> {\n return this.http.post<ApiResponse<any>>(\n `${this.basePath}/${instanceId}/advance`,\n body\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { WorkforceCapacity, ContractorResource } from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipResourceService {\n private basePath = '/api/aip/resources';\n\n constructor(private http: TgmHttpClient) {}\n\n getWorkforceCapacity(locationId: number): Observable<ApiResponse<WorkforceCapacity>> {\n return this.http.get<ApiResponse<WorkforceCapacity>>(\n `${this.basePath}/workforce/${locationId}`\n );\n }\n\n getContractorResources(locationId: number): Observable<ApiResponse<ContractorResource[]>> {\n return this.http.get<ApiResponse<ContractorResource[]>>(\n `${this.basePath}/contractors/${locationId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n LoadForecast,\n TransmissionConstraint,\n NetworkBottleneck,\n PowerFlowAnalysis,\n} from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipNetworkAnalysisService {\n private basePath = '/api/aip/network';\n\n constructor(private http: TgmHttpClient) {}\n\n getLoadForecasts(locationId: number): Observable<ApiResponse<LoadForecast[]>> {\n return this.http.get<ApiResponse<LoadForecast[]>>(\n `${this.basePath}/forecasts/${locationId}`\n );\n }\n\n getTransmissionConstraints(locationId: number): Observable<ApiResponse<TransmissionConstraint[]>> {\n return this.http.get<ApiResponse<TransmissionConstraint[]>>(\n `${this.basePath}/constraints/${locationId}`\n );\n }\n\n getNetworkBottlenecks(locationId: number): Observable<ApiResponse<NetworkBottleneck[]>> {\n return this.http.get<ApiResponse<NetworkBottleneck[]>>(\n `${this.basePath}/bottlenecks/${locationId}`\n );\n }\n\n runPowerFlowAnalysis(locationId: number): Observable<ApiResponse<PowerFlowAnalysis>> {\n return this.http.get<ApiResponse<PowerFlowAnalysis>>(\n `${this.basePath}/power-flow/${locationId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n GeoAsset,\n GeographicFilters,\n RiskHeatmapData,\n RegionalAnalysis,\n ProximityAnalysis,\n} from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipGeographicService {\n private basePath = '/api/aip/geographic';\n\n constructor(private http: TgmHttpClient) {}\n\n getGeoAssets(locationId: number, filters?: GeographicFilters): Observable<ApiResponse<GeoAsset[]>> {\n return this.http.get<ApiResponse<GeoAsset[]>>(\n `${this.basePath}/assets/${locationId}`,\n { params: filters as any }\n );\n }\n\n getRiskHeatmap(locationId: number): Observable<ApiResponse<RiskHeatmapData>> {\n return this.http.get<ApiResponse<RiskHeatmapData>>(\n `${this.basePath}/heatmap/${locationId}`\n );\n }\n\n getRegionalAnalysis(locationId: number): Observable<ApiResponse<RegionalAnalysis>> {\n return this.http.get<ApiResponse<RegionalAnalysis>>(\n `${this.basePath}/regional/${locationId}`\n );\n }\n\n getProximityAnalysis(assessmentId: number, radiusKm?: number): Observable<ApiResponse<ProximityAnalysis>> {\n const params = radiusKm != null ? { radiusKm } as any : undefined;\n return this.http.get<ApiResponse<ProximityAnalysis>>(\n `${this.basePath}/proximity/${assessmentId}`,\n params ? { params } : undefined\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport {\n PerformanceMetrics,\n EstimationAccuracy,\n ContinuousImprovementMetric,\n RootCause,\n} from '../../models/api/aip.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AipPerformanceService {\n private basePath = '/api/aip/performance';\n\n constructor(private http: TgmHttpClient) {}\n\n getMetrics(locationId: number): Observable<ApiResponse<PerformanceMetrics>> {\n return this.http.get<ApiResponse<PerformanceMetrics>>(\n `${this.basePath}/metrics/${locationId}`\n );\n }\n\n getEstimationAccuracy(locationId: number): Observable<ApiResponse<EstimationAccuracy>> {\n return this.http.get<ApiResponse<EstimationAccuracy>>(\n `${this.basePath}/accuracy/${locationId}`\n );\n }\n\n getContinuousImprovement(locationId: number): Observable<ApiResponse<ContinuousImprovementMetric[]>> {\n return this.http.get<ApiResponse<ContinuousImprovementMetric[]>>(\n `${this.basePath}/improvement/${locationId}`\n );\n }\n\n getRootCauses(recordId: number): Observable<ApiResponse<RootCause[]>> {\n return this.http.get<ApiResponse<RootCause[]>>(\n `${this.basePath}/${recordId}/root-causes`\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { AnomalyDetection, AnomalyForecast } from '../../models/api/sensor.models';\n\n/**\n * Client-facing anomaly detection service.\n *\n * - `getAnomalies()` uses `/api/alerts` (SensorAlert CRUD, client-scoped)\n * - `getForecast()` uses `/api/alerts/forecast` (if backend exposes it)\n *\n * The internal Python service endpoints (`/api/internal/...`) require\n * `hasRole('API')` and are NOT accessible from the frontend.\n */\n@Injectable({ providedIn: 'root' })\nexport class AnomalyDetectionService {\n constructor(private http: TgmHttpClient) {}\n\n /** List recent anomaly alerts (sensor alerts) with pagination + sorting */\n getAnomalies(params?: Record<string, any>): Observable<any> {\n return this.http.get<any>('/api/alerts', { params: { sort: 'id:DESC', pageSize: 50, ...params } });\n }\n\n /** Get a single alert by ID */\n getAnomalyById(id: number): Observable<ApiResponse<AnomalyDetection>> {\n return this.http.get<ApiResponse<AnomalyDetection>>(`/api/alerts/${id}`);\n }\n\n /** Forecast endpoint — available when Cortex ML is enabled */\n getForecast(sensorId: number, horizon?: string): Observable<ApiResponse<AnomalyForecast[]>> {\n const params: any = { sensorId };\n if (horizon) params.horizon = horizon;\n return this.http.get<ApiResponse<AnomalyForecast[]>>('/api/cortex/dashboard/forecast', { params });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ScheduledReport } from '../../models/api/misc.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ScheduledReportService extends BaseCrudService<ScheduledReport> {\n protected resourcePath = '/api/scheduled-reports';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { EntityComment } from '../../models/api/misc.models';\n\n@Injectable({ providedIn: 'root' })\nexport class EntityCommentService {\n private readonly basePath = '/api/entity-comments';\n\n constructor(private http: TgmHttpClient) {}\n\n getComments(entityType: string, entityId: number): Observable<ApiResponse<EntityComment[]>> {\n return this.http.get<ApiResponse<EntityComment[]>>(this.basePath, {\n params: { entityType, entityId } as any,\n });\n }\n\n create(comment: Partial<EntityComment>): Observable<ApiResponse<EntityComment>> {\n return this.http.post<ApiResponse<EntityComment>>(this.basePath, comment);\n }\n\n update(id: number, comment: Partial<EntityComment>): Observable<ApiResponse<EntityComment>> {\n return this.http.put<ApiResponse<EntityComment>>(`${this.basePath}/${id}`, comment);\n }\n\n delete(id: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse } from '../../models/base.models';\nimport { AuditEntry } from '../../models/api/misc.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AuditEntryService {\n private readonly basePath = '/api/audit-entries';\n\n constructor(private http: TgmHttpClient) {}\n\n getAuditEntries(entityType: string, entityId: number): Observable<ApiResponse<AuditEntry[]>> {\n return this.http.get<ApiResponse<AuditEntry[]>>(this.basePath, {\n params: { entityType, entityId } as any,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { BaseCrudService } from './base-crud.service';\nimport { ThresholdAlertRule } from '../../models/api/misc.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ThresholdAlertRuleService extends BaseCrudService<ThresholdAlertRule> {\n protected resourcePath = '/api/threshold-alert-rules';\n\n constructor(http: TgmHttpClient) {\n super(http);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse, PaginationParams } from '../../models/base.models';\nimport {\n Conversation,\n ChatMessage,\n ChatParticipant,\n PresenceResponse,\n CreateConversationRequest,\n SendMessageRequest,\n UpdateConversationRequest,\n AddParticipantRequest,\n EditMessageRequest,\n} from '../../models/chat/chat.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ChatRestService {\n private readonly basePath = '/api/chat';\n\n constructor(private http: TgmHttpClient) {}\n\n // --- Conversations ---\n\n getConversations(params?: PaginationParams & { search?: string }): Observable<PagedResponse<Conversation>> {\n return this.http.get<PagedResponse<Conversation>>(`${this.basePath}/conversations`, { params: params as any });\n }\n\n getConversation(id: number): Observable<ApiResponse<Conversation>> {\n return this.http.get<ApiResponse<Conversation>>(`${this.basePath}/conversations/${id}`);\n }\n\n createConversation(data: CreateConversationRequest): Observable<ApiResponse<Conversation>> {\n return this.http.post<ApiResponse<Conversation>>(`${this.basePath}/conversations`, data);\n }\n\n updateConversation(id: number, data: UpdateConversationRequest): Observable<ApiResponse<Conversation>> {\n return this.http.put<ApiResponse<Conversation>>(`${this.basePath}/conversations/${id}`, data);\n }\n\n deleteConversation(id: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/conversations/${id}`);\n }\n\n archiveConversation(id: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${id}/archive`);\n }\n\n unarchiveConversation(id: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${id}/unarchive`);\n }\n\n muteConversation(id: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${id}/mute`);\n }\n\n unmuteConversation(id: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${id}/unmute`);\n }\n\n pinConversation(id: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${id}/pin`);\n }\n\n unpinConversation(id: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${id}/unpin`);\n }\n\n // --- Messages ---\n\n getMessages(conversationId: number, params?: PaginationParams): Observable<PagedResponse<ChatMessage>> {\n return this.http.get<PagedResponse<ChatMessage>>(`${this.basePath}/conversations/${conversationId}/messages`, { params: params as any });\n }\n\n sendMessage(data: SendMessageRequest): Observable<ApiResponse<ChatMessage>> {\n return this.http.post<ApiResponse<ChatMessage>>(`${this.basePath}/messages`, data);\n }\n\n editMessage(messageId: number, data: EditMessageRequest): Observable<ApiResponse<ChatMessage>> {\n return this.http.put<ApiResponse<ChatMessage>>(`${this.basePath}/messages/${messageId}`, data);\n }\n\n deleteMessage(messageId: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/messages/${messageId}`);\n }\n\n getReplies(messageId: number, params?: PaginationParams): Observable<PagedResponse<ChatMessage>> {\n return this.http.get<PagedResponse<ChatMessage>>(`${this.basePath}/messages/${messageId}/replies`, { params: params as any });\n }\n\n searchMessages(conversationId: number, query: string): Observable<ChatMessage[]> {\n return this.http.get<ChatMessage[]>(`${this.basePath}/conversations/${conversationId}/messages/search`, { params: { query } });\n }\n\n // --- Participants ---\n\n getParticipants(conversationId: number): Observable<ChatParticipant[]> {\n return this.http.get<ChatParticipant[]>(`${this.basePath}/conversations/${conversationId}/participants`);\n }\n\n addParticipants(conversationId: number, data: AddParticipantRequest): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${conversationId}/participants`, data);\n }\n\n removeParticipant(conversationId: number, userId: number): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/conversations/${conversationId}/participants/${userId}`);\n }\n\n leaveConversation(conversationId: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${conversationId}/leave`);\n }\n\n // --- Reactions ---\n\n addReaction(messageId: number, emoji: string): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/messages/${messageId}/reactions`, { emoji });\n }\n\n removeReaction(messageId: number, emoji: string): Observable<ApiResponse<void>> {\n return this.http.delete<ApiResponse<void>>(`${this.basePath}/messages/${messageId}/reactions`, { params: { emoji } });\n }\n\n // --- Read Receipts ---\n\n markAsRead(conversationId: number, lastMessageId?: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/conversations/${conversationId}/read`, {\n conversationId,\n lastReadMessageId: lastMessageId,\n });\n }\n\n // --- Presence ---\n\n getPresence(): Observable<PresenceResponse[]> {\n return this.http.get<PresenceResponse[]>(`${this.basePath}/presence`);\n }\n\n getUserPresence(userId: number): Observable<PresenceResponse> {\n return this.http.get<PresenceResponse>(`${this.basePath}/presence/${userId}`);\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { WebSocketService } from '../../core/websocket.service';\nimport {\n ChatMessage,\n TypingIndicatorResponse,\n PresenceResponse,\n ReadReceiptBroadcast,\n ReactionBroadcast,\n SendMessageRequest,\n} from '../../models/chat/chat.models';\n\n@Injectable({ providedIn: 'root' })\nexport class ChatWebSocketService implements OnDestroy {\n private destroy$ = new Subject<void>();\n private connected = false;\n\n /** Incoming new messages */\n readonly messages$: Observable<ChatMessage>;\n\n /** Typing indicators */\n readonly typing$: Observable<TypingIndicatorResponse>;\n\n /** Presence updates */\n readonly presence$: Observable<PresenceResponse>;\n\n /** Read receipt broadcasts */\n readonly readReceipts$: Observable<ReadReceiptBroadcast>;\n\n /** Reaction broadcasts */\n readonly reactions$: Observable<ReactionBroadcast>;\n\n /** Error messages */\n readonly errors$: Observable<any>;\n\n constructor(private ws: WebSocketService) {\n this.messages$ = this.ws.subscribe<ChatMessage>('/user/queue/chat/messages').pipe(takeUntil(this.destroy$));\n this.typing$ = this.ws.subscribe<TypingIndicatorResponse>('/user/queue/chat/typing').pipe(takeUntil(this.destroy$));\n this.presence$ = this.ws.subscribe<PresenceResponse>('/user/queue/chat/presence').pipe(takeUntil(this.destroy$));\n this.readReceipts$ = this.ws.subscribe<ReadReceiptBroadcast>('/user/queue/chat/receipts').pipe(takeUntil(this.destroy$));\n this.reactions$ = this.ws.subscribe<ReactionBroadcast>('/user/queue/chat/reactions').pipe(takeUntil(this.destroy$));\n this.errors$ = this.ws.subscribe<any>('/user/queue/chat/errors').pipe(takeUntil(this.destroy$));\n }\n\n connect(): void {\n if (!this.connected) {\n this.ws.connect('/ws/chat');\n this.connected = true;\n }\n }\n\n disconnect(): void {\n this.ws.disconnect();\n this.connected = false;\n }\n\n sendMessage(request: SendMessageRequest): void {\n this.ws.send('/app/chat.send', request);\n }\n\n sendTyping(conversationId: number, typing: boolean): void {\n this.ws.send('/app/chat.typing', { conversationId, typing });\n }\n\n markRead(conversationId: number, lastMessageId?: number): void {\n this.ws.send('/app/chat.markRead', { conversationId, lastReadMessageId: lastMessageId });\n }\n\n sendReaction(messageId: number, conversationId: number, emoji: string, add: boolean): void {\n this.ws.send('/app/chat.reaction', { messageId, conversationId, emoji, add });\n }\n\n updatePresence(online: boolean, deviceType?: string): void {\n this.ws.send('/app/chat.presence', { online, deviceType });\n }\n\n heartbeat(): void {\n this.ws.send('/app/chat.heartbeat', {});\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.disconnect();\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { WebSocketService } from '../../core/websocket.service';\nimport {\n EntityChangeEvent,\n QueueMessageEvent,\n QueueMessageFirehoseEvent,\n IoTEvent,\n NotificationEvent,\n CalendarUpdateEvent,\n} from '../../models/realtime/realtime-event.models';\n\n/**\n * Real-time event service for subscribing to entity CRUD changes,\n * dynamic queue messages, IoT events, notifications, and calendar updates.\n *\n * ## Entity Changes\n *\n * When any entity is created, updated, or deleted via the API, an event is\n * broadcast to WebSocket. No RabbitMQ required — this works automatically\n * for every entity type managed by BaseApiController.\n *\n * ```typescript\n * // All entity changes\n * this.realtimeEvents.allEntityChanges$.subscribe(event => { ... });\n *\n * // Specific resource type\n * this.realtimeEvents.entityChanges('inspections').subscribe(event => { ... });\n * ```\n *\n * ## Dynamic Queue Messages\n *\n * When a RabbitMQ dynamic queue message is processed, it is broadcast to\n * WebSocket. The queue must exist and have an active listener (create via\n * QueueAdminService).\n *\n * ```typescript\n * // All queue messages\n * this.realtimeEvents.allQueueMessages$.subscribe(event => { ... });\n *\n * // Specific queue\n * this.realtimeEvents.queueMessages('tgm_iot').subscribe(event => { ... });\n * ```\n *\n * ## Connection\n *\n * Call `connect()` once (e.g. after login). The service uses the shared\n * `WebSocketService` and auto-reconnects on disconnect.\n */\n@Injectable({ providedIn: 'root' })\nexport class RealtimeEventService implements OnDestroy {\n private destroy$ = new Subject<void>();\n private connected = false;\n\n // ─── Entity Change Streams ────────────────────────────────────────\n\n /**\n * All entity CRUD changes (firehose).\n * Emits for every create, update, and delete across all entity types.\n *\n * STOMP destination: `/topic/entities`\n */\n readonly allEntityChanges$: Observable<EntityChangeEvent>;\n\n // ─── Queue Message Streams ────────────────────────────────────────\n\n /**\n * All dynamic queue messages (firehose).\n * Emits for every successfully processed message across all queues.\n *\n * STOMP destination: `/topic/queues`\n */\n readonly allQueueMessages$: Observable<QueueMessageFirehoseEvent>;\n\n // ─── IoT Stream ───────────────────────────────────────────────────\n\n /**\n * IoT sensor events from the static RabbitMQ listener.\n *\n * STOMP destination: `/topic/iot-event`\n */\n readonly iotEvents$: Observable<IoTEvent>;\n\n // ─── User-Specific Streams ────────────────────────────────────────\n\n /**\n * Notifications for the authenticated user.\n *\n * STOMP destination: `/user/queue/notifications`\n */\n readonly notifications$: Observable<NotificationEvent>;\n\n /**\n * Calendar updates for the authenticated user.\n *\n * STOMP destination: `/user/queue/calendar`\n */\n readonly calendarUpdates$: Observable<CalendarUpdateEvent>;\n\n constructor(private ws: WebSocketService) {\n this.allEntityChanges$ = this.ws\n .subscribe<EntityChangeEvent>('/topic/entities')\n .pipe(takeUntil(this.destroy$));\n\n this.allQueueMessages$ = this.ws\n .subscribe<QueueMessageFirehoseEvent>('/topic/queues')\n .pipe(takeUntil(this.destroy$));\n\n this.iotEvents$ = this.ws\n .subscribe<IoTEvent>('/topic/iot-event')\n .pipe(takeUntil(this.destroy$));\n\n this.notifications$ = this.ws\n .subscribe<NotificationEvent>('/user/queue/notifications')\n .pipe(takeUntil(this.destroy$));\n\n this.calendarUpdates$ = this.ws\n .subscribe<CalendarUpdateEvent>('/user/queue/calendar')\n .pipe(takeUntil(this.destroy$));\n }\n\n /**\n * Connect to the WebSocket server.\n * Call once after authentication (e.g. in AppComponent.ngOnInit or after login).\n * Subsequent calls are no-ops.\n */\n connect(): void {\n if (!this.connected) {\n this.ws.connect('/ws');\n this.connected = true;\n }\n }\n\n /**\n * Disconnect from the WebSocket server.\n */\n disconnect(): void {\n this.ws.disconnect();\n this.connected = false;\n }\n\n // ─── Resource-Specific Subscriptions ──────────────────────────────\n\n /**\n * Subscribe to entity changes for a specific resource type.\n *\n * @param resourceName The API resource name (plural) — e.g. 'inspections', 'units', 'interventions', 'failures', 'locations'\n * @returns Observable that emits EntityChangeEvent for that resource\n *\n * STOMP destination: `/topic/entities/{resourceName}`\n *\n * @example\n * ```typescript\n * this.realtimeEvents.entityChanges('inspections').subscribe(event => {\n * console.log(event.action, event.entityId, event.data);\n * });\n * ```\n */\n entityChanges<T = any>(resourceName: string): Observable<EntityChangeEvent<T>> {\n return this.ws\n .subscribe<EntityChangeEvent<T>>(`/topic/entities/${resourceName}`)\n .pipe(takeUntil(this.destroy$));\n }\n\n /**\n * Subscribe to messages from a specific dynamic queue.\n *\n * The queue must exist in RabbitMQ with an active listener.\n * Create queues via `QueueAdminService.create()`.\n *\n * @param queueName The queue name — e.g. 'tgm_iot', 'tgm_notifications', 'my_custom_queue'\n * @returns Observable that emits QueueMessageEvent for that queue\n *\n * STOMP destination: `/topic/queues/{queueName}`\n *\n * @example\n * ```typescript\n * this.realtimeEvents.queueMessages('tgm_iot').subscribe(event => {\n * console.log(event.handlerType, event.payload);\n * });\n * ```\n */\n queueMessages<T = any>(queueName: string): Observable<QueueMessageEvent<T>> {\n return this.ws\n .subscribe<QueueMessageEvent<T>>(`/topic/queues/${queueName}`)\n .pipe(takeUntil(this.destroy$));\n }\n\n /**\n * Stop listening to a specific entity resource.\n * Useful when navigating away from a page that was watching a resource.\n */\n unsubscribeEntity(resourceName: string): void {\n this.ws.unsubscribe(`/topic/entities/${resourceName}`);\n }\n\n /**\n * Stop listening to a specific queue.\n */\n unsubscribeQueue(queueName: string): void {\n this.ws.unsubscribe(`/topic/queues/${queueName}`);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.disconnect();\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { WebSocketService } from '../../core/websocket.service';\nimport {\n ReservoirSensorEvent,\n ReservoirExternalMessage,\n ReservoirManualMessage,\n ReservoirStatusMessage,\n} from '../../models/api/reservoir-websocket.models';\n\n/**\n * WebSocket service for real-time reservoir data streams.\n *\n * Provides 4 strongly-typed observable streams per reservoir:\n * - `sensors$` — real-time sensor readings (single or bulk)\n * - `externalData$` — weather, grid market, lab results, fish monitoring, regulatory updates\n * - `manualData$` — inspections, manual readings, operational observations\n * - `statusAlerts$` — operating events and alert notifications\n */\n@Injectable({ providedIn: 'root' })\nexport class ReservoirWebSocketService implements OnDestroy {\n private destroy$ = new Subject<void>();\n private connected = false;\n private currentReservoirId: string | null = null;\n\n private sensorsSubject$ = new Subject<ReservoirSensorEvent>();\n private externalDataSubject$ = new Subject<ReservoirExternalMessage>();\n private manualDataSubject$ = new Subject<ReservoirManualMessage>();\n private statusAlertsSubject$ = new Subject<ReservoirStatusMessage>();\n\n /** Real-time sensor readings stream (single or bulk messages) */\n readonly sensors$: Observable<ReservoirSensorEvent> = this.sensorsSubject$.asObservable();\n\n /** External data stream (weather, grid market, lab results, etc.) */\n readonly externalData$: Observable<ReservoirExternalMessage> = this.externalDataSubject$.asObservable();\n\n /** Manual data stream (inspections, manual readings, observations) */\n readonly manualData$: Observable<ReservoirManualMessage> = this.manualDataSubject$.asObservable();\n\n /** Status and alert notifications stream */\n readonly statusAlerts$: Observable<ReservoirStatusMessage> = this.statusAlertsSubject$.asObservable();\n\n constructor(private ws: WebSocketService) {}\n\n /** Connects to the WebSocket and subscribes to all 4 streams for the given reservoir. */\n connect(reservoirId: string): void {\n if (this.connected && this.currentReservoirId === reservoirId) return;\n\n // Disconnect from previous reservoir if switching\n if (this.connected) {\n this.unsubscribeStreams();\n }\n\n this.ws.connect('/ws');\n this.connected = true;\n this.currentReservoirId = reservoirId;\n\n this.ws.subscribe<ReservoirSensorEvent>(`/topic/reservoir/${reservoirId}/sensors`)\n .pipe(takeUntil(this.destroy$))\n .subscribe(data => this.sensorsSubject$.next(data));\n\n this.ws.subscribe<ReservoirExternalMessage>(`/topic/reservoir/${reservoirId}/external`)\n .pipe(takeUntil(this.destroy$))\n .subscribe(data => this.externalDataSubject$.next(data));\n\n this.ws.subscribe<ReservoirManualMessage>(`/topic/reservoir/${reservoirId}/manual`)\n .pipe(takeUntil(this.destroy$))\n .subscribe(data => this.manualDataSubject$.next(data));\n\n this.ws.subscribe<ReservoirStatusMessage>(`/topic/reservoir/${reservoirId}/status`)\n .pipe(takeUntil(this.destroy$))\n .subscribe(data => this.statusAlertsSubject$.next(data));\n }\n\n /** Disconnects from the WebSocket. */\n disconnect(): void {\n this.unsubscribeStreams();\n this.ws.disconnect();\n this.connected = false;\n this.currentReservoirId = null;\n }\n\n /** Sends a subscription request to the backend for a specific data type. */\n subscribe(reservoirId: string, dataType: string): void {\n this.ws.send('/app/reservoir.subscribe', {\n action: 'subscribe',\n dataType,\n reservoir_id: reservoirId,\n });\n }\n\n /** Sends an unsubscription request for a specific data type. */\n unsubscribe(reservoirId: string, dataType: string): void {\n this.ws.send('/app/reservoir.unsubscribe', {\n action: 'unsubscribe',\n dataType,\n reservoir_id: reservoirId,\n });\n }\n\n /** The currently subscribed reservoir ID. */\n getCurrentReservoirId(): string | null {\n return this.currentReservoirId;\n }\n\n private unsubscribeStreams(): void {\n if (this.currentReservoirId) {\n this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/sensors`);\n this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/external`);\n this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/manual`);\n this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/status`);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.disconnect();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TgmHttpClient } from '../../core/http-client.service';\nimport { ApiResponse, PagedResponse } from '../../models/base.models';\nimport {\n VideoCall,\n InitiateCallRequest,\n AnswerCallRequest,\n VideoCallTokenResponse,\n} from '../../models/video/video-call.models';\n\n@Injectable({ providedIn: 'root' })\nexport class VideoCallRestService {\n private readonly basePath = '/api/video-calls';\n\n constructor(private http: TgmHttpClient) {}\n\n initiateCall(request: InitiateCallRequest): Observable<ApiResponse<VideoCall>> {\n return this.http.post<ApiResponse<VideoCall>>(this.basePath, request);\n }\n\n answerCall(callId: number, accepted: boolean): Observable<ApiResponse<VideoCallTokenResponse | null>> {\n return this.http.post<ApiResponse<VideoCallTokenResponse | null>>(`${this.basePath}/${callId}/answer`, { callId, accepted });\n }\n\n joinCall(callId: number): Observable<ApiResponse<VideoCallTokenResponse>> {\n return this.http.post<ApiResponse<VideoCallTokenResponse>>(`${this.basePath}/${callId}/join`);\n }\n\n endCall(callId: number): Observable<ApiResponse<void>> {\n return this.http.post<ApiResponse<void>>(`${this.basePath}/${callId}/end`);\n }\n\n getCall(callId: number): Observable<ApiResponse<VideoCall>> {\n return this.http.get<ApiResponse<VideoCall>>(`${this.basePath}/${callId}`);\n }\n\n getCallHistory(companyId: number, page = 0, size = 20): Observable<ApiResponse<PagedResponse<VideoCall>>> {\n return this.http.get<ApiResponse<PagedResponse<VideoCall>>>(this.basePath, {\n params: { companyId, page, size },\n });\n }\n\n getActiveCall(companyId: number): Observable<ApiResponse<VideoCall | null>> {\n return this.http.get<ApiResponse<VideoCall | null>>(`${this.basePath}/active`, {\n params: { companyId },\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { WebSocketService } from '../../core/websocket.service';\nimport {\n VideoCall,\n InitiateCallRequest,\n AnswerCallRequest,\n VideoCallTokenResponse,\n IncomingCallEvent,\n CallAnsweredEvent,\n CallEndedEvent,\n} from '../../models/video/video-call.models';\n\n@Injectable({ providedIn: 'root' })\nexport class VideoCallWebSocketService implements OnDestroy {\n private destroy$ = new Subject<void>();\n\n /** Incoming call notification (for targets) */\n readonly incomingCall$: Observable<IncomingCallEvent>;\n\n /** Call initiated confirmation (for initiator) */\n readonly callInitiated$: Observable<VideoCall>;\n\n /** Call answered notification */\n readonly callAnswered$: Observable<CallAnsweredEvent>;\n\n /** LiveKit token delivery (after accepting call) */\n readonly callToken$: Observable<VideoCallTokenResponse>;\n\n /** Call ended notification */\n readonly callEnded$: Observable<CallEndedEvent>;\n\n /** Call rejected notification */\n readonly callRejected$: Observable<CallAnsweredEvent>;\n\n /** Error messages */\n readonly errors$: Observable<any>;\n\n constructor(private ws: WebSocketService) {\n this.incomingCall$ = this.ws.subscribe<IncomingCallEvent>('/user/queue/video/incoming-call').pipe(takeUntil(this.destroy$));\n this.callInitiated$ = this.ws.subscribe<VideoCall>('/user/queue/video/call-initiated').pipe(takeUntil(this.destroy$));\n this.callAnswered$ = this.ws.subscribe<CallAnsweredEvent>('/user/queue/video/call-answered').pipe(takeUntil(this.destroy$));\n this.callToken$ = this.ws.subscribe<VideoCallTokenResponse>('/user/queue/video/call-token').pipe(takeUntil(this.destroy$));\n this.callEnded$ = this.ws.subscribe<CallEndedEvent>('/user/queue/video/call-ended').pipe(takeUntil(this.destroy$));\n this.callRejected$ = this.ws.subscribe<CallAnsweredEvent>('/user/queue/video/call-rejected').pipe(takeUntil(this.destroy$));\n this.errors$ = this.ws.subscribe<any>('/user/queue/video/errors').pipe(takeUntil(this.destroy$));\n }\n\n initiateCall(request: InitiateCallRequest): void {\n this.ws.send('/app/video.call-init', request);\n }\n\n answerCall(callId: number, accepted: boolean): void {\n this.ws.send('/app/video.call-answer', { callId, accepted });\n }\n\n endCall(callId: number): void {\n this.ws.send('/app/video.call-end', { callId });\n }\n\n rejectCall(callId: number): void {\n this.ws.send('/app/video.call-reject', { callId });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n AfterViewInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ParticipantInfo } from '../types/video-call.types';\n\n@Component({\n selector: 'tgm-video-participant',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './video-participant.component.html',\n styleUrls: ['./video-participant.component.scss'],\n})\nexport class VideoParticipantComponent implements AfterViewInit, OnChanges, OnDestroy {\n @Input() participant!: ParticipantInfo;\n @Input() compact = false;\n\n @ViewChild('videoElement') videoElementRef!: ElementRef<HTMLVideoElement>;\n @ViewChild('audioElement') audioElementRef!: ElementRef<HTMLAudioElement>;\n\n ngAfterViewInit(): void {\n this.attachTracks();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['participant']) {\n this.attachTracks();\n }\n }\n\n ngOnDestroy(): void {\n this.detachTracks();\n }\n\n get initials(): string {\n if (!this.participant?.name) return '?';\n return this.participant.name\n .split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()\n .substring(0, 2);\n }\n\n private attachTracks(): void {\n if (!this.participant) return;\n\n // Attach video\n if (this.participant.videoTrack && this.videoElementRef?.nativeElement) {\n this.participant.videoTrack.attach(this.videoElementRef.nativeElement);\n }\n\n // Attach audio (only for remote participants)\n if (!this.participant.isLocal && this.participant.audioTrack && this.audioElementRef?.nativeElement) {\n this.participant.audioTrack.attach(this.audioElementRef.nativeElement);\n }\n }\n\n private detachTracks(): void {\n if (this.participant?.videoTrack && this.videoElementRef?.nativeElement) {\n this.participant.videoTrack.detach(this.videoElementRef.nativeElement);\n }\n if (this.participant?.audioTrack && this.audioElementRef?.nativeElement) {\n this.participant.audioTrack.detach(this.audioElementRef.nativeElement);\n }\n }\n}\n","<div\n class=\"participant-tile\"\n [class.compact]=\"compact\"\n [class.speaking]=\"participant.isSpeaking\"\n [class.local]=\"participant.isLocal\"\n>\n <!-- Video -->\n <video\n #videoElement\n *ngIf=\"participant.videoEnabled && participant.videoTrack\"\n autoplay\n playsinline\n [muted]=\"participant.isLocal\"\n class=\"video-stream\"\n ></video>\n\n <!-- Audio (remote only) -->\n <audio\n #audioElement\n *ngIf=\"!participant.isLocal && participant.audioTrack\"\n autoplay\n ></audio>\n\n <!-- Avatar fallback -->\n <div *ngIf=\"!participant.videoEnabled || !participant.videoTrack\" class=\"avatar-fallback\">\n <span class=\"initials\">{{ initials }}</span>\n </div>\n\n <!-- Info overlay -->\n <div class=\"participant-info\">\n <span class=\"name\">{{ participant.name }}{{ participant.isLocal ? ' (You)' : '' }}</span>\n <div class=\"status-icons\">\n <span *ngIf=\"!participant.audioEnabled\" class=\"status-icon muted-icon\" title=\"Muted\">🔇</span>\n <span *ngIf=\"!participant.videoEnabled\" class=\"status-icon camera-off-icon\" title=\"Camera off\">📷</span>\n <span *ngIf=\"participant.screenShareTrack\" class=\"status-icon screen-share-icon\" title=\"Sharing screen\">🖥️</span>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tgm-video-controls',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './video-controls.component.html',\n styleUrls: ['./video-controls.component.scss'],\n})\nexport class VideoControlsComponent {\n @Input() micEnabled = true;\n @Input() cameraEnabled = true;\n @Input() screenShareEnabled = false;\n\n @Output() toggleMic = new EventEmitter<void>();\n @Output() toggleCamera = new EventEmitter<void>();\n @Output() toggleScreenShare = new EventEmitter<void>();\n @Output() hangUp = new EventEmitter<void>();\n}\n","<div class=\"video-controls\">\n <button\n class=\"control-btn\"\n [class.active]=\"micEnabled\"\n [class.muted]=\"!micEnabled\"\n (click)=\"toggleMic.emit()\"\n [title]=\"micEnabled ? 'Mute microphone' : 'Unmute microphone'\"\n >\n <span class=\"icon\">{{ micEnabled ? '🎤' : '🔇' }}</span>\n <span class=\"label\">{{ micEnabled ? 'Mute' : 'Unmute' }}</span>\n </button>\n\n <button\n class=\"control-btn\"\n [class.active]=\"cameraEnabled\"\n [class.muted]=\"!cameraEnabled\"\n (click)=\"toggleCamera.emit()\"\n [title]=\"cameraEnabled ? 'Turn off camera' : 'Turn on camera'\"\n >\n <span class=\"icon\">{{ cameraEnabled ? '📹' : '📷' }}</span>\n <span class=\"label\">{{ cameraEnabled ? 'Stop Video' : 'Start Video' }}</span>\n </button>\n\n <button\n class=\"control-btn\"\n [class.active]=\"screenShareEnabled\"\n (click)=\"toggleScreenShare.emit()\"\n [title]=\"screenShareEnabled ? 'Stop sharing' : 'Share screen'\"\n >\n <span class=\"icon\">🖥️</span>\n <span class=\"label\">{{ screenShareEnabled ? 'Stop Share' : 'Share Screen' }}</span>\n </button>\n\n <button\n class=\"control-btn hang-up\"\n (click)=\"hangUp.emit()\"\n title=\"End call\"\n >\n <span class=\"icon\">📞</span>\n <span class=\"label\">End Call</span>\n </button>\n</div>\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport {\n Room,\n RoomEvent,\n Track,\n Participant,\n RemoteParticipant,\n LocalParticipant,\n ConnectionState,\n RemoteTrackPublication,\n LocalTrackPublication,\n} from 'livekit-client';\nimport { ParticipantInfo } from '../types/video-call.types';\n\n@Injectable({ providedIn: 'root' })\nexport class LivekitRoomService implements OnDestroy {\n private room?: Room;\n private participantsSubject = new BehaviorSubject<ParticipantInfo[]>([]);\n private connectionStateSubject = new BehaviorSubject<ConnectionState>(ConnectionState.Disconnected);\n private activeSpeakersSubject = new BehaviorSubject<string[]>([]);\n private errorSubject = new Subject<string>();\n\n readonly participants$: Observable<ParticipantInfo[]> = this.participantsSubject.asObservable();\n readonly connectionState$: Observable<ConnectionState> = this.connectionStateSubject.asObservable();\n readonly activeSpeakers$: Observable<string[]> = this.activeSpeakersSubject.asObservable();\n readonly error$: Observable<string> = this.errorSubject.asObservable();\n\n async connect(token: string, wsUrl: string): Promise<void> {\n try {\n this.room = new Room({\n adaptiveStream: true,\n dynacast: true,\n });\n\n this.setupRoomListeners(this.room);\n\n await this.room.connect(wsUrl, token);\n this.connectionStateSubject.next(ConnectionState.Connected);\n\n // Enable local tracks\n await this.room.localParticipant.enableCameraAndMicrophone();\n this.updateParticipants();\n } catch (error: any) {\n this.connectionStateSubject.next(ConnectionState.Disconnected);\n this.errorSubject.next(error.message || 'Failed to connect to room');\n throw error;\n }\n }\n\n disconnect(): void {\n if (this.room) {\n this.room.disconnect();\n this.room = undefined;\n this.connectionStateSubject.next(ConnectionState.Disconnected);\n this.participantsSubject.next([]);\n }\n }\n\n async toggleMicrophone(): Promise<boolean> {\n if (!this.room) return false;\n const enabled = this.room.localParticipant.isMicrophoneEnabled;\n await this.room.localParticipant.setMicrophoneEnabled(!enabled);\n this.updateParticipants();\n return !enabled;\n }\n\n async toggleCamera(): Promise<boolean> {\n if (!this.room) return false;\n const enabled = this.room.localParticipant.isCameraEnabled;\n await this.room.localParticipant.setCameraEnabled(!enabled);\n this.updateParticipants();\n return !enabled;\n }\n\n async toggleScreenShare(): Promise<boolean> {\n if (!this.room) return false;\n const enabled = this.room.localParticipant.isScreenShareEnabled;\n await this.room.localParticipant.setScreenShareEnabled(!enabled);\n this.updateParticipants();\n return !enabled;\n }\n\n getRoom(): Room | undefined {\n return this.room;\n }\n\n ngOnDestroy(): void {\n this.disconnect();\n }\n\n private setupRoomListeners(room: Room): void {\n room.on(RoomEvent.ParticipantConnected, () => this.updateParticipants());\n room.on(RoomEvent.ParticipantDisconnected, () => this.updateParticipants());\n room.on(RoomEvent.TrackSubscribed, () => this.updateParticipants());\n room.on(RoomEvent.TrackUnsubscribed, () => this.updateParticipants());\n room.on(RoomEvent.TrackMuted, () => this.updateParticipants());\n room.on(RoomEvent.TrackUnmuted, () => this.updateParticipants());\n room.on(RoomEvent.LocalTrackPublished, () => this.updateParticipants());\n room.on(RoomEvent.LocalTrackUnpublished, () => this.updateParticipants());\n room.on(RoomEvent.ActiveSpeakersChanged, (speakers: Participant[]) => {\n this.activeSpeakersSubject.next(speakers.map((s) => s.identity));\n this.updateParticipants();\n });\n room.on(RoomEvent.ConnectionStateChanged, (state: ConnectionState) => {\n this.connectionStateSubject.next(state);\n });\n room.on(RoomEvent.Disconnected, () => {\n this.connectionStateSubject.next(ConnectionState.Disconnected);\n this.participantsSubject.next([]);\n });\n }\n\n private updateParticipants(): void {\n if (!this.room) return;\n\n const participants: ParticipantInfo[] = [];\n\n // Local participant\n participants.push(this.toParticipantInfo(this.room.localParticipant, true));\n\n // Remote participants\n this.room.remoteParticipants.forEach((participant) => {\n participants.push(this.toParticipantInfo(participant, false));\n });\n\n this.participantsSubject.next(participants);\n }\n\n private toParticipantInfo(participant: Participant, isLocal: boolean): ParticipantInfo {\n let audioTrack: Track | undefined;\n let videoTrack: Track | undefined;\n let screenShareTrack: Track | undefined;\n\n participant.trackPublications.forEach((pub) => {\n const track = pub.track;\n if (!track) return;\n\n if (track.source === Track.Source.Microphone) {\n audioTrack = track;\n } else if (track.source === Track.Source.Camera) {\n videoTrack = track;\n } else if (track.source === Track.Source.ScreenShare) {\n screenShareTrack = track;\n }\n });\n\n return {\n identity: participant.identity,\n name: participant.name || participant.identity,\n audioTrack,\n videoTrack,\n screenShareTrack,\n isSpeaking: participant.isSpeaking,\n audioEnabled: participant.isMicrophoneEnabled,\n videoEnabled: participant.isCameraEnabled,\n isLocal,\n };\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ConnectionState } from 'livekit-client';\nimport { Subscription } from 'rxjs';\nimport { LivekitRoomService } from '../services/livekit-room.service';\nimport { VideoParticipantComponent } from '../video-participant/video-participant.component';\nimport { VideoControlsComponent } from '../video-controls/video-controls.component';\nimport { ParticipantInfo } from '../types/video-call.types';\n\n@Component({\n selector: 'tgm-video-room',\n standalone: true,\n imports: [CommonModule, VideoParticipantComponent, VideoControlsComponent],\n templateUrl: './video-room.component.html',\n styleUrls: ['./video-room.component.scss'],\n})\nexport class VideoRoomComponent implements OnInit, OnDestroy {\n @Input() callId!: number;\n @Input() token!: string;\n @Input() wsUrl!: string;\n @Output() callEnded = new EventEmitter<void>();\n @Output() error = new EventEmitter<string>();\n\n participants: ParticipantInfo[] = [];\n connectionState: ConnectionState = ConnectionState.Disconnected;\n\n private subscriptions: Subscription[] = [];\n\n constructor(private livekitRoom: LivekitRoomService) {}\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.livekitRoom.participants$.subscribe((p) => (this.participants = p)),\n this.livekitRoom.connectionState$.subscribe((s) => (this.connectionState = s)),\n this.livekitRoom.error$.subscribe((e) => this.error.emit(e))\n );\n\n this.connect();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.livekitRoom.disconnect();\n }\n\n private async connect(): Promise<void> {\n try {\n await this.livekitRoom.connect(this.token, this.wsUrl);\n } catch (e: any) {\n this.error.emit(e.message || 'Failed to connect');\n }\n }\n\n onHangUp(): void {\n this.livekitRoom.disconnect();\n this.callEnded.emit();\n }\n\n async onToggleMic(): Promise<void> {\n await this.livekitRoom.toggleMicrophone();\n }\n\n async onToggleCamera(): Promise<void> {\n await this.livekitRoom.toggleCamera();\n }\n\n async onToggleScreenShare(): Promise<void> {\n await this.livekitRoom.toggleScreenShare();\n }\n\n get localParticipant(): ParticipantInfo | undefined {\n return this.participants.find((p) => p.isLocal);\n }\n\n get remoteParticipants(): ParticipantInfo[] {\n return this.participants.filter((p) => !p.isLocal);\n }\n\n get gridClass(): string {\n const count = this.participants.length;\n if (count <= 1) return 'grid-1';\n if (count <= 2) return 'grid-2';\n if (count <= 4) return 'grid-4';\n if (count <= 6) return 'grid-6';\n return 'grid-many';\n }\n\n get isConnected(): boolean {\n return this.connectionState === ConnectionState.Connected;\n }\n}\n","<div class=\"video-room\" *ngIf=\"isConnected; else connecting\">\n <!-- Participants Grid -->\n <div class=\"participants-grid\" [ngClass]=\"gridClass\">\n <tgm-video-participant\n *ngFor=\"let participant of participants\"\n [participant]=\"participant\"\n [compact]=\"participants.length > 4\"\n ></tgm-video-participant>\n </div>\n\n <!-- Controls -->\n <div class=\"controls-bar\">\n <tgm-video-controls\n [micEnabled]=\"localParticipant?.audioEnabled ?? true\"\n [cameraEnabled]=\"localParticipant?.videoEnabled ?? true\"\n [screenShareEnabled]=\"!!localParticipant?.screenShareTrack\"\n (toggleMic)=\"onToggleMic()\"\n (toggleCamera)=\"onToggleCamera()\"\n (toggleScreenShare)=\"onToggleScreenShare()\"\n (hangUp)=\"onHangUp()\"\n ></tgm-video-controls>\n </div>\n</div>\n\n<ng-template #connecting>\n <div class=\"connecting-state\">\n <div class=\"spinner\"></div>\n <p>Connecting to call...</p>\n </div>\n</ng-template>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IncomingCallEvent } from '../types/video-call.types';\n\n@Component({\n selector: 'tgm-incoming-call',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './incoming-call.component.html',\n styleUrls: ['./incoming-call.component.scss'],\n})\nexport class IncomingCallComponent implements OnInit, OnDestroy {\n @Input() callEvent!: IncomingCallEvent;\n @Output() accepted = new EventEmitter<IncomingCallEvent>();\n @Output() declined = new EventEmitter<IncomingCallEvent>();\n\n private autoDismissTimer?: ReturnType<typeof setTimeout>;\n private ringtoneAudio?: HTMLAudioElement;\n\n ngOnInit(): void {\n // Auto-dismiss after 30 seconds\n this.autoDismissTimer = setTimeout(() => {\n this.declined.emit(this.callEvent);\n }, 30000);\n\n this.playRingtone();\n }\n\n ngOnDestroy(): void {\n if (this.autoDismissTimer) {\n clearTimeout(this.autoDismissTimer);\n }\n this.stopRingtone();\n }\n\n onAccept(): void {\n this.stopRingtone();\n if (this.autoDismissTimer) {\n clearTimeout(this.autoDismissTimer);\n }\n this.accepted.emit(this.callEvent);\n }\n\n onDecline(): void {\n this.stopRingtone();\n if (this.autoDismissTimer) {\n clearTimeout(this.autoDismissTimer);\n }\n this.declined.emit(this.callEvent);\n }\n\n get callTypeLabel(): string {\n return this.callEvent?.hasVideo ? 'Video Call' : 'Audio Call';\n }\n\n get callerInitials(): string {\n if (!this.callEvent?.initiatorName) return '?';\n return this.callEvent.initiatorName\n .split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()\n .substring(0, 2);\n }\n\n private playRingtone(): void {\n try {\n this.ringtoneAudio = new Audio();\n // Use a simple oscillator-based tone as fallback\n this.ringtoneAudio.loop = true;\n } catch {\n // Audio may not be available\n }\n }\n\n private stopRingtone(): void {\n if (this.ringtoneAudio) {\n this.ringtoneAudio.pause();\n this.ringtoneAudio = undefined;\n }\n }\n}\n","<div class=\"incoming-call-dialog\" *ngIf=\"callEvent\">\n <div class=\"caller-info\">\n <div class=\"caller-avatar\">\n <span class=\"initials\">{{ callerInitials }}</span>\n </div>\n <div class=\"caller-details\">\n <h3 class=\"caller-name\">{{ callEvent.initiatorName }}</h3>\n <p class=\"call-type\">Incoming {{ callTypeLabel }}</p>\n </div>\n </div>\n\n <div class=\"call-actions\">\n <button class=\"action-btn decline\" (click)=\"onDecline()\" title=\"Decline\">\n <span class=\"icon\">✕</span>\n <span class=\"label\">Decline</span>\n </button>\n <button class=\"action-btn accept\" (click)=\"onAccept()\" title=\"Accept\">\n <span class=\"icon\">✓</span>\n <span class=\"label\">Accept</span>\n </button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VideoRoomComponent } from './video-room/video-room.component';\nimport { VideoControlsComponent } from './video-controls/video-controls.component';\nimport { VideoParticipantComponent } from './video-participant/video-participant.component';\nimport { IncomingCallComponent } from './incoming-call/incoming-call.component';\n\n@NgModule({\n imports: [\n CommonModule,\n VideoRoomComponent,\n VideoControlsComponent,\n VideoParticipantComponent,\n IncomingCallComponent,\n ],\n exports: [\n VideoRoomComponent,\n VideoControlsComponent,\n VideoParticipantComponent,\n IncomingCallComponent,\n ],\n})\nexport class VideoCallModule {}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { WebSocketService } from '../../../core/websocket.service';\nimport {\n IncomingCallEvent,\n CallAnsweredEvent,\n CallEndedEvent,\n InitiateCallRequest,\n AnswerCallRequest,\n} from '../types/video-call.types';\n\n@Injectable({ providedIn: 'root' })\nexport class VideoCallSignalingService implements OnDestroy {\n private destroy$ = new Subject<void>();\n\n readonly incomingCall$: Observable<IncomingCallEvent>;\n readonly callAnswered$: Observable<CallAnsweredEvent>;\n readonly callEnded$: Observable<CallEndedEvent>;\n readonly callRejected$: Observable<CallAnsweredEvent>;\n\n constructor(private ws: WebSocketService) {\n this.incomingCall$ = this.ws.subscribe<IncomingCallEvent>('/user/queue/video/incoming-call').pipe(takeUntil(this.destroy$));\n this.callAnswered$ = this.ws.subscribe<CallAnsweredEvent>('/user/queue/video/call-answered').pipe(takeUntil(this.destroy$));\n this.callEnded$ = this.ws.subscribe<CallEndedEvent>('/user/queue/video/call-ended').pipe(takeUntil(this.destroy$));\n this.callRejected$ = this.ws.subscribe<CallAnsweredEvent>('/user/queue/video/call-rejected').pipe(takeUntil(this.destroy$));\n }\n\n sendCallInit(request: InitiateCallRequest): void {\n this.ws.send('/app/video.call-init', request);\n }\n\n sendCallAnswer(request: AnswerCallRequest): void {\n this.ws.send('/app/video.call-answer', request);\n }\n\n sendCallEnd(callId: number): void {\n this.ws.send('/app/video.call-end', { callId });\n }\n\n sendCallReject(callId: number): void {\n this.ws.send('/app/video.call-reject', { callId });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { IncomingCallEvent, VideoCallTokenResponse } from '../types/video-call.types';\n\nexport interface VideoCallState {\n isInCall: boolean;\n callId: number | null;\n token: string | null;\n wsUrl: string | null;\n roomName: string | null;\n isInitiator: boolean;\n incomingCall: IncomingCallEvent | null;\n}\n\nconst INITIAL_STATE: VideoCallState = {\n isInCall: false,\n callId: null,\n token: null,\n wsUrl: null,\n roomName: null,\n isInitiator: false,\n incomingCall: null,\n};\n\n@Injectable({ providedIn: 'root' })\nexport class VideoCallStateService {\n private state$ = new BehaviorSubject<VideoCallState>(INITIAL_STATE);\n readonly state: Observable<VideoCallState> = this.state$.asObservable();\n\n get currentState(): VideoCallState {\n return this.state$.value;\n }\n\n get isInCall(): boolean {\n return this.state$.value.isInCall;\n }\n\n setIncomingCall(event: IncomingCallEvent): void {\n this.state$.next({ ...this.state$.value, incomingCall: event });\n }\n\n clearIncomingCall(): void {\n this.state$.next({ ...this.state$.value, incomingCall: null });\n }\n\n startCall(callId: number, tokenResponse: VideoCallTokenResponse, isInitiator: boolean): void {\n this.state$.next({\n isInCall: true,\n callId,\n token: tokenResponse.token,\n wsUrl: tokenResponse.wsUrl,\n roomName: tokenResponse.roomName,\n isInitiator,\n incomingCall: null,\n });\n }\n\n endCall(): void {\n this.state$.next(INITIAL_STATE);\n }\n\n reset(): void {\n this.state$.next(INITIAL_STATE);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReportTemplate } from '../../../models/api/reporting.models';\nimport { ReportingService } from '../../../services/api/reporting.service';\n\n@Component({\n selector: 'tgm-report-template-list',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './report-template-list.component.html',\n styleUrls: ['./report-template-list.component.scss'],\n})\nexport class ReportTemplateListComponent implements OnInit {\n // ── Data ──\n @Input() templates?: ReportTemplate[];\n @Input() loading = false;\n @Input() autoFetch = true;\n\n // ── Labels ──\n @Input() emptyMessage = 'No report templates available.';\n @Input() generateButtonLabel = 'Generate';\n @Input() filtersLabel = 'filters';\n @Input() formatsLabel = 'Formats';\n @Input() title = '';\n\n // ── CSS overrides ──\n @Input() containerClass = '';\n @Input() cardClass = '';\n\n // ── Custom templates ──\n @Input() cardTemplate?: TemplateRef<{ $implicit: ReportTemplate }>;\n @Input() emptyTemplate?: TemplateRef<void>;\n @Input() loadingTemplate?: TemplateRef<void>;\n @Input() headerTemplate?: TemplateRef<void>;\n\n // ── Events ──\n @Output() selectTemplate = new EventEmitter<ReportTemplate>();\n @Output() generateReport = new EventEmitter<ReportTemplate>();\n @Output() templatesFetched = new EventEmitter<ReportTemplate[]>();\n @Output() fetchError = new EventEmitter<any>();\n\n internalTemplates: ReportTemplate[] = [];\n internalLoading = false;\n\n constructor(private reportingService: ReportingService) {}\n\n ngOnInit(): void {\n if (!this.templates && this.autoFetch) {\n this.fetchTemplates();\n }\n }\n\n get displayTemplates(): ReportTemplate[] {\n return this.templates ?? this.internalTemplates;\n }\n\n get isLoading(): boolean {\n return this.loading || this.internalLoading;\n }\n\n onSelect(template: ReportTemplate): void {\n this.selectTemplate.emit(template);\n }\n\n onGenerate(event: Event, template: ReportTemplate): void {\n event.stopPropagation();\n this.generateReport.emit(template);\n }\n\n trackByType(_index: number, template: ReportTemplate): string {\n return template.type;\n }\n\n private fetchTemplates(): void {\n this.internalLoading = true;\n this.reportingService.getTemplates().subscribe({\n next: (res) => {\n this.internalTemplates = res.data ?? [];\n this.internalLoading = false;\n this.templatesFetched.emit(this.internalTemplates);\n },\n error: (err) => {\n this.internalLoading = false;\n this.fetchError.emit(err);\n },\n });\n }\n}\n","<div class=\"tgm-template-list\" [ngClass]=\"containerClass\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <h3 class=\"tgm-template-list__title\" *ngIf=\"title\">{{ title }}</h3>\n </ng-template>\n\n <!-- Loading -->\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else defaultLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultLoading>\n <div class=\"tgm-template-list__loading\">\n <div class=\"tgm-spinner\"></div>\n <p>Loading templates...</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Empty -->\n <ng-container *ngIf=\"!isLoading && displayTemplates.length === 0\">\n <ng-container *ngIf=\"emptyTemplate; else defaultEmpty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultEmpty>\n <div class=\"tgm-template-list__empty\">\n <p>{{ emptyMessage }}</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Grid -->\n <div class=\"tgm-template-list__grid\" *ngIf=\"!isLoading && displayTemplates.length > 0\">\n <ng-container *ngFor=\"let template of displayTemplates; trackBy: trackByType\">\n <!-- Custom card template -->\n <ng-container *ngIf=\"cardTemplate; else defaultCard\">\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: template }\"></ng-container>\n </ng-container>\n\n <!-- Default card -->\n <ng-template #defaultCard>\n <div class=\"tgm-template-card\" [ngClass]=\"cardClass\" (click)=\"onSelect(template)\">\n <div class=\"tgm-template-card__header\">\n <h4 class=\"tgm-template-card__name\">{{ template.name }}</h4>\n </div>\n <p class=\"tgm-template-card__description\">{{ template.description }}</p>\n <div class=\"tgm-template-card__meta\">\n <div class=\"tgm-template-card__formats\">\n <span class=\"tgm-badge\" *ngFor=\"let format of template.supportedFormats\">{{ format }}</span>\n </div>\n <span class=\"tgm-template-card__filters\">\n {{ template.availableFilters.length }} {{ filtersLabel }}\n </span>\n </div>\n <div class=\"tgm-template-card__actions\">\n <button class=\"tgm-btn tgm-btn--primary\" (click)=\"onGenerate($event, template)\">\n {{ generateButtonLabel }}\n </button>\n </div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {\n GenerateReportRequest,\n ReportFormat,\n ReportTemplate,\n} from '../../../models/api/reporting.models';\n\n@Component({\n selector: 'tgm-report-generate-dialog',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './report-generate-dialog.component.html',\n styleUrls: ['./report-generate-dialog.component.scss'],\n})\nexport class ReportGenerateDialogComponent implements OnChanges {\n // ── Data ──\n @Input() template!: ReportTemplate;\n @Input() open = false;\n @Input() generating = false;\n @Input() formatOptions?: ReportFormat[];\n\n // ── Labels ──\n @Input() title = '';\n @Input() formatLabel = 'Format';\n @Input() filtersLabel = 'Filters';\n @Input() generateButtonLabel = 'Generate Report';\n @Input() cancelButtonLabel = 'Cancel';\n @Input() closeOnBackdrop = true;\n\n // ── CSS overrides ──\n @Input() containerClass = '';\n @Input() dialogClass = '';\n\n // ── Custom templates ──\n @Input() headerTemplate?: TemplateRef<{ $implicit: ReportTemplate }>;\n @Input() filtersTemplate?: TemplateRef<{\n $implicit: ReportTemplate;\n filters: Record<string, any>;\n }>;\n @Input() footerTemplate?: TemplateRef<{\n $implicit: ReportTemplate;\n generating: boolean;\n onGenerate: () => void;\n onCancel: () => void;\n }>;\n\n // ── Events ──\n @Output() generate = new EventEmitter<GenerateReportRequest>();\n @Output() close = new EventEmitter<void>();\n @Output() cancel = new EventEmitter<void>();\n\n selectedFormat: ReportFormat = 'PDF';\n filters: Record<string, any> = {};\n\n get availableFormats(): ReportFormat[] {\n return this.formatOptions ?? this.template?.supportedFormats ?? ['PDF', 'EXCEL', 'CSV'];\n }\n\n get dialogTitle(): string {\n return this.title || `Generate: ${this.template?.name ?? 'Report'}`;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['template'] && this.template) {\n this.resetForm();\n }\n if (changes['open'] && this.open && this.template) {\n this.resetForm();\n }\n }\n\n onBackdropClick(): void {\n if (this.closeOnBackdrop) {\n this.close.emit();\n }\n }\n\n onCancel(): void {\n this.cancel.emit();\n this.close.emit();\n }\n\n onGenerate(): void {\n const request: GenerateReportRequest = {\n reportType: this.template.type,\n reportFormat: this.selectedFormat,\n filters: { ...this.filters },\n };\n this.generate.emit(request);\n }\n\n onFilterChange(key: string, value: any): void {\n this.filters[key] = value;\n }\n\n trackByFilter(_index: number, filter: string): string {\n return filter;\n }\n\n private resetForm(): void {\n this.selectedFormat = this.availableFormats[0] ?? 'PDF';\n this.filters = {};\n if (this.template?.availableFilters) {\n for (const f of this.template.availableFilters) {\n this.filters[f] = '';\n }\n }\n }\n}\n","<div class=\"tgm-dialog-backdrop\" *ngIf=\"open\" [ngClass]=\"containerClass\" (click)=\"onBackdropClick()\">\n <div class=\"tgm-dialog\" [ngClass]=\"dialogClass\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: template }\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <div class=\"tgm-dialog__header\">\n <h3 class=\"tgm-dialog__title\">{{ dialogTitle }}</h3>\n <button class=\"tgm-dialog__close\" (click)=\"onCancel()\" type=\"button\">×</button>\n </div>\n </ng-template>\n\n <div class=\"tgm-dialog__body\">\n <!-- Format Selection -->\n <div class=\"tgm-form-group\">\n <label class=\"tgm-form-label\">{{ formatLabel }}</label>\n <div class=\"tgm-radio-group\">\n <label class=\"tgm-radio\" *ngFor=\"let fmt of availableFormats\">\n <input type=\"radio\" [value]=\"fmt\" [(ngModel)]=\"selectedFormat\" name=\"reportFormat\" />\n <span class=\"tgm-radio__label\">{{ fmt }}</span>\n </label>\n </div>\n </div>\n\n <!-- Filters -->\n <ng-container *ngIf=\"template?.availableFilters?.length\">\n <div class=\"tgm-form-group\">\n <label class=\"tgm-form-label\">{{ filtersLabel }}</label>\n\n <ng-container *ngIf=\"filtersTemplate; else defaultFilters\">\n <ng-container *ngTemplateOutlet=\"filtersTemplate; context: { $implicit: template, filters: filters }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultFilters>\n <div class=\"tgm-filters-grid\">\n <div class=\"tgm-filter-field\" *ngFor=\"let filter of template.availableFilters; trackBy: trackByFilter\">\n <label class=\"tgm-filter-field__label\">{{ filter }}</label>\n <input\n class=\"tgm-input\"\n type=\"text\"\n [placeholder]=\"'Enter ' + filter\"\n [ngModel]=\"filters[filter]\"\n (ngModelChange)=\"onFilterChange(filter, $event)\"\n [attr.name]=\"'filter_' + filter\"\n />\n </div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n </div>\n\n <!-- Footer -->\n <ng-container *ngIf=\"footerTemplate; else defaultFooter\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: {\n $implicit: template,\n generating: generating,\n onGenerate: onGenerate.bind(this),\n onCancel: onCancel.bind(this)\n }\"></ng-container>\n </ng-container>\n <ng-template #defaultFooter>\n <div class=\"tgm-dialog__footer\">\n <button class=\"tgm-btn tgm-btn--secondary\" (click)=\"onCancel()\" type=\"button\" [disabled]=\"generating\">\n {{ cancelButtonLabel }}\n </button>\n <button class=\"tgm-btn tgm-btn--primary\" (click)=\"onGenerate()\" type=\"button\" [disabled]=\"generating\">\n <span class=\"tgm-spinner tgm-spinner--sm\" *ngIf=\"generating\"></span>\n {{ generateButtonLabel }}\n </button>\n </div>\n </ng-template>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReportDefinition } from '../../../models/api/reporting.models';\nimport { ReportingService } from '../../../services/api/reporting.service';\n\n@Component({\n selector: 'tgm-report-definition-list',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './report-definition-list.component.html',\n styleUrls: ['./report-definition-list.component.scss'],\n})\nexport class ReportDefinitionListComponent implements OnInit {\n // ── Data ──\n @Input() definitions?: ReportDefinition[];\n @Input() loading = false;\n @Input() autoFetch = true;\n @Input() pageSize = 10;\n @Input() showActions = true;\n @Input() showPagination = true;\n\n // ── Visible columns (all true by default) ──\n @Input() showName = true;\n @Input() showType = true;\n @Input() showFormat = true;\n @Input() showSchedule = true;\n @Input() showEnabled = true;\n @Input() showLastRun = true;\n\n // ── Labels ──\n @Input() emptyMessage = 'No report definitions found.';\n @Input() title = '';\n @Input() nameHeader = 'Name';\n @Input() typeHeader = 'Type';\n @Input() formatHeader = 'Format';\n @Input() scheduleHeader = 'Schedule';\n @Input() enabledHeader = 'Enabled';\n @Input() lastRunHeader = 'Last Run';\n @Input() actionsHeader = 'Actions';\n @Input() editLabel = 'Edit';\n @Input() deleteLabel = 'Delete';\n @Input() generateLabel = 'Generate';\n @Input() viewLabel = 'View';\n @Input() previousLabel = 'Previous';\n @Input() nextLabel = 'Next';\n\n // ── CSS overrides ──\n @Input() containerClass = '';\n @Input() tableClass = '';\n\n // ── Custom templates ──\n @Input() rowTemplate?: TemplateRef<{ $implicit: ReportDefinition; index: number }>;\n @Input() emptyTemplate?: TemplateRef<void>;\n @Input() loadingTemplate?: TemplateRef<void>;\n @Input() headerTemplate?: TemplateRef<void>;\n @Input() actionsTemplate?: TemplateRef<{ $implicit: ReportDefinition }>;\n @Input() paginationTemplate?: TemplateRef<{\n page: number;\n pageSize: number;\n total: number;\n onPageChange: (page: number) => void;\n }>;\n\n // ── Events ──\n @Output() edit = new EventEmitter<ReportDefinition>();\n @Output() delete = new EventEmitter<ReportDefinition>();\n @Output() toggle = new EventEmitter<{ definition: ReportDefinition; enabled: boolean }>();\n @Output() generate = new EventEmitter<ReportDefinition>();\n @Output() view = new EventEmitter<ReportDefinition>();\n @Output() pageChange = new EventEmitter<{ page: number; size: number }>();\n @Output() definitionsFetched = new EventEmitter<ReportDefinition[]>();\n @Output() fetchError = new EventEmitter<any>();\n\n internalDefinitions: ReportDefinition[] = [];\n internalLoading = false;\n currentPage = 0;\n totalItems = 0;\n\n constructor(private reportingService: ReportingService) {}\n\n ngOnInit(): void {\n if (!this.definitions && this.autoFetch) {\n this.fetchDefinitions();\n }\n }\n\n get displayDefinitions(): ReportDefinition[] {\n return this.definitions ?? this.internalDefinitions;\n }\n\n get isLoading(): boolean {\n return this.loading || this.internalLoading;\n }\n\n get totalPages(): number {\n const total = this.totalItems || this.displayDefinitions.length;\n return Math.ceil(total / this.pageSize) || 1;\n }\n\n get hasPrev(): boolean {\n return this.currentPage > 0;\n }\n\n get hasNext(): boolean {\n return this.currentPage < this.totalPages - 1;\n }\n\n onEdit(def: ReportDefinition): void {\n this.edit.emit(def);\n }\n\n onDelete(def: ReportDefinition): void {\n this.delete.emit(def);\n }\n\n onToggle(def: ReportDefinition): void {\n this.toggle.emit({ definition: def, enabled: !def.enabled });\n }\n\n onGenerate(def: ReportDefinition): void {\n this.generate.emit(def);\n }\n\n onView(def: ReportDefinition): void {\n this.view.emit(def);\n }\n\n onPrevPage(): void {\n if (this.hasPrev) {\n this.currentPage--;\n this.pageChange.emit({ page: this.currentPage, size: this.pageSize });\n if (!this.definitions && this.autoFetch) {\n this.fetchDefinitions();\n }\n }\n }\n\n onNextPage(): void {\n if (this.hasNext) {\n this.currentPage++;\n this.pageChange.emit({ page: this.currentPage, size: this.pageSize });\n if (!this.definitions && this.autoFetch) {\n this.fetchDefinitions();\n }\n }\n }\n\n goToPage = (page: number): void => {\n this.currentPage = page;\n this.pageChange.emit({ page: this.currentPage, size: this.pageSize });\n if (!this.definitions && this.autoFetch) {\n this.fetchDefinitions();\n }\n };\n\n trackById(_index: number, def: ReportDefinition): number {\n return def.id;\n }\n\n formatDate(dateStr?: string): string {\n if (!dateStr) return '—';\n try {\n return new Date(dateStr).toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n });\n } catch {\n return dateStr;\n }\n }\n\n private fetchDefinitions(): void {\n this.internalLoading = true;\n this.reportingService.listDefinitions(this.currentPage, this.pageSize).subscribe({\n next: (res) => {\n this.internalDefinitions = res.data ?? [];\n this.totalItems = (res as any).total ?? this.internalDefinitions.length;\n this.internalLoading = false;\n this.definitionsFetched.emit(this.internalDefinitions);\n },\n error: (err) => {\n this.internalLoading = false;\n this.fetchError.emit(err);\n },\n });\n }\n}\n","<div class=\"tgm-def-list\" [ngClass]=\"containerClass\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <h3 class=\"tgm-def-list__title\" *ngIf=\"title\">{{ title }}</h3>\n </ng-template>\n\n <!-- Loading -->\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else defaultLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultLoading>\n <div class=\"tgm-def-list__loading\">\n <div class=\"tgm-spinner\"></div>\n <p>Loading definitions...</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Empty -->\n <ng-container *ngIf=\"!isLoading && displayDefinitions.length === 0\">\n <ng-container *ngIf=\"emptyTemplate; else defaultEmpty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultEmpty>\n <div class=\"tgm-def-list__empty\">\n <p>{{ emptyMessage }}</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Table -->\n <div class=\"tgm-table-wrapper\" *ngIf=\"!isLoading && displayDefinitions.length > 0\">\n <table class=\"tgm-table\" [ngClass]=\"tableClass\">\n <thead>\n <tr>\n <th *ngIf=\"showName\">{{ nameHeader }}</th>\n <th *ngIf=\"showType\">{{ typeHeader }}</th>\n <th *ngIf=\"showFormat\">{{ formatHeader }}</th>\n <th *ngIf=\"showSchedule\">{{ scheduleHeader }}</th>\n <th *ngIf=\"showEnabled\">{{ enabledHeader }}</th>\n <th *ngIf=\"showLastRun\">{{ lastRunHeader }}</th>\n <th *ngIf=\"showActions\">{{ actionsHeader }}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let def of displayDefinitions; let i = index; trackBy: trackById\">\n <!-- Custom row template -->\n <ng-container *ngIf=\"rowTemplate; else defaultRow\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: def, index: i }\"></ng-container>\n </ng-container>\n\n <!-- Default row -->\n <ng-template #defaultRow>\n <tr>\n <td *ngIf=\"showName\">\n <span class=\"tgm-def-name\" (click)=\"onView(def)\">{{ def.name }}</span>\n <span class=\"tgm-def-desc\" *ngIf=\"def.description\">{{ def.description }}</span>\n </td>\n <td *ngIf=\"showType\">\n <span class=\"tgm-badge tgm-badge--type\">{{ def.reportType }}</span>\n </td>\n <td *ngIf=\"showFormat\">{{ def.reportFormat }}</td>\n <td *ngIf=\"showSchedule\">{{ def.schedule }}</td>\n <td *ngIf=\"showEnabled\">\n <button class=\"tgm-toggle\" [class.tgm-toggle--active]=\"def.enabled\" (click)=\"onToggle(def)\">\n <span class=\"tgm-toggle__track\">\n <span class=\"tgm-toggle__thumb\"></span>\n </span>\n </button>\n </td>\n <td *ngIf=\"showLastRun\">{{ formatDate(def.lastRunAt) }}</td>\n <td *ngIf=\"showActions\">\n <!-- Custom actions -->\n <ng-container *ngIf=\"actionsTemplate; else defaultActions\">\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: def }\"></ng-container>\n </ng-container>\n <ng-template #defaultActions>\n <div class=\"tgm-actions\">\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--ghost\" (click)=\"onView(def)\">{{ viewLabel }}</button>\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--ghost\" (click)=\"onEdit(def)\">{{ editLabel }}</button>\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--primary\" (click)=\"onGenerate(def)\">{{ generateLabel }}</button>\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--danger\" (click)=\"onDelete(def)\">{{ deleteLabel }}</button>\n </div>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n\n <!-- Pagination -->\n <ng-container *ngIf=\"showPagination && totalPages > 1\">\n <ng-container *ngIf=\"paginationTemplate; else defaultPagination\">\n <ng-container *ngTemplateOutlet=\"paginationTemplate; context: {\n page: currentPage,\n pageSize: pageSize,\n total: totalItems,\n onPageChange: goToPage\n }\"></ng-container>\n </ng-container>\n <ng-template #defaultPagination>\n <div class=\"tgm-pagination\">\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--ghost\" [disabled]=\"!hasPrev\" (click)=\"onPrevPage()\">\n {{ previousLabel }}\n </button>\n <span class=\"tgm-pagination__info\">{{ currentPage + 1 }} / {{ totalPages }}</span>\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--ghost\" [disabled]=\"!hasNext\" (click)=\"onNextPage()\">\n {{ nextLabel }}\n </button>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {\n CreateReportDefinitionRequest,\n DeliveryMethod,\n ReportDefinition,\n ReportFormat,\n ReportSchedule,\n ReportType,\n UpdateReportDefinitionRequest,\n} from '../../../models/api/reporting.models';\n\n@Component({\n selector: 'tgm-report-definition-form',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './report-definition-form.component.html',\n styleUrls: ['./report-definition-form.component.scss'],\n})\nexport class ReportDefinitionFormComponent implements OnChanges {\n // ── Data ──\n @Input() definition?: ReportDefinition;\n @Input() saving = false;\n\n // ── Options (override defaults) ──\n @Input() reportTypes: ReportType[] = [\n 'MAINTENANCE_SUMMARY',\n 'INSPECTION_COMPLIANCE',\n 'EQUIPMENT_HEALTH',\n 'FAILURE_ANALYSIS',\n 'TECHNICIAN_PERFORMANCE',\n 'COST_ANALYSIS',\n 'RESERVOIR_OPERATIONS',\n 'WATER_QUALITY',\n 'REGULATORY_COMPLIANCE',\n 'ALERT_ANALYSIS',\n ];\n @Input() reportFormats: ReportFormat[] = ['PDF', 'EXCEL', 'CSV'];\n @Input() schedules: ReportSchedule[] = ['NONE', 'DAILY', 'WEEKLY', 'MONTHLY'];\n @Input() deliveryMethods: DeliveryMethod[] = ['DOWNLOAD', 'EMAIL'];\n\n // ── Labels ──\n @Input() title = '';\n @Input() nameLabel = 'Name';\n @Input() namePlaceholder = 'Report definition name';\n @Input() descriptionLabel = 'Description';\n @Input() descriptionPlaceholder = 'Optional description';\n @Input() reportTypeLabel = 'Report Type';\n @Input() reportFormatLabel = 'Format';\n @Input() scheduleLabel = 'Schedule';\n @Input() deliveryMethodLabel = 'Delivery Method';\n @Input() emailRecipientsLabel = 'Email Recipients';\n @Input() emailRecipientsPlaceholder = 'comma-separated emails';\n @Input() filtersLabel = 'Filters (JSON)';\n @Input() filtersPlaceholder = '{\"key\": \"value\"}';\n @Input() enabledLabel = 'Enabled';\n @Input() saveButtonLabel = '';\n @Input() cancelButtonLabel = 'Cancel';\n\n // ── CSS overrides ──\n @Input() containerClass = '';\n @Input() formClass = '';\n\n // ── Custom templates ──\n @Input() headerTemplate?: TemplateRef<{ isEdit: boolean }>;\n @Input() footerTemplate?: TemplateRef<{\n isEdit: boolean;\n saving: boolean;\n onSave: () => void;\n onCancel: () => void;\n }>;\n @Input() fieldsTemplate?: TemplateRef<{\n form: any;\n isEdit: boolean;\n }>;\n\n // ── Events ──\n @Output() save = new EventEmitter<CreateReportDefinitionRequest | UpdateReportDefinitionRequest>();\n @Output() cancel = new EventEmitter<void>();\n\n // Form model\n form = {\n name: '',\n description: '',\n reportType: 'MAINTENANCE_SUMMARY' as ReportType,\n reportFormat: 'PDF' as ReportFormat,\n schedule: 'NONE' as ReportSchedule,\n deliveryMethod: 'DOWNLOAD' as DeliveryMethod,\n emailRecipients: '',\n filtersJson: '',\n enabled: true,\n };\n\n get isEdit(): boolean {\n return !!this.definition;\n }\n\n get formTitle(): string {\n if (this.title) return this.title;\n return this.isEdit ? 'Edit Report Definition' : 'Create Report Definition';\n }\n\n get saveLabel(): string {\n if (this.saveButtonLabel) return this.saveButtonLabel;\n return this.isEdit ? 'Update' : 'Create';\n }\n\n get showEmailRecipients(): boolean {\n return this.form.deliveryMethod === 'EMAIL';\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['definition']) {\n this.populateForm();\n }\n }\n\n onSave(): void {\n let filters: Record<string, any> | undefined;\n if (this.form.filtersJson.trim()) {\n try {\n filters = JSON.parse(this.form.filtersJson);\n } catch {\n filters = undefined;\n }\n }\n\n const request: CreateReportDefinitionRequest = {\n name: this.form.name,\n description: this.form.description || undefined,\n reportType: this.form.reportType,\n reportFormat: this.form.reportFormat,\n schedule: this.form.schedule,\n deliveryMethod: this.form.deliveryMethod,\n emailRecipients: this.form.emailRecipients || undefined,\n filters,\n enabled: this.form.enabled,\n };\n\n this.save.emit(request);\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n\n private populateForm(): void {\n if (this.definition) {\n this.form = {\n name: this.definition.name,\n description: this.definition.description ?? '',\n reportType: this.definition.reportType,\n reportFormat: this.definition.reportFormat,\n schedule: this.definition.schedule,\n deliveryMethod: this.definition.deliveryMethod,\n emailRecipients: this.definition.emailRecipients ?? '',\n filtersJson: this.definition.filters ? JSON.stringify(this.definition.filters, null, 2) : '',\n enabled: this.definition.enabled,\n };\n } else {\n this.form = {\n name: '',\n description: '',\n reportType: this.reportTypes[0] ?? 'MAINTENANCE_SUMMARY',\n reportFormat: this.reportFormats[0] ?? 'PDF',\n schedule: 'NONE',\n deliveryMethod: 'DOWNLOAD',\n emailRecipients: '',\n filtersJson: '',\n enabled: true,\n };\n }\n }\n}\n","<div class=\"tgm-def-form\" [ngClass]=\"containerClass\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { isEdit: isEdit }\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <h3 class=\"tgm-def-form__title\">{{ formTitle }}</h3>\n </ng-template>\n\n <!-- Custom fields template -->\n <ng-container *ngIf=\"fieldsTemplate; else defaultFields\">\n <ng-container *ngTemplateOutlet=\"fieldsTemplate; context: { form: form, isEdit: isEdit }\"></ng-container>\n </ng-container>\n\n <!-- Default fields -->\n <ng-template #defaultFields>\n <div class=\"tgm-form\" [ngClass]=\"formClass\">\n <!-- Name -->\n <div class=\"tgm-form-group\">\n <label class=\"tgm-form-label\">{{ nameLabel }}</label>\n <input class=\"tgm-input\" type=\"text\" [(ngModel)]=\"form.name\" [placeholder]=\"namePlaceholder\" name=\"name\" />\n </div>\n\n <!-- Description -->\n <div class=\"tgm-form-group\">\n <label class=\"tgm-form-label\">{{ descriptionLabel }}</label>\n <textarea class=\"tgm-input tgm-textarea\" [(ngModel)]=\"form.description\" [placeholder]=\"descriptionPlaceholder\" name=\"description\" rows=\"2\"></textarea>\n </div>\n\n <!-- Report Type & Format (side by side) -->\n <div class=\"tgm-form-row\">\n <div class=\"tgm-form-group tgm-form-group--flex\">\n <label class=\"tgm-form-label\">{{ reportTypeLabel }}</label>\n <select class=\"tgm-select\" [(ngModel)]=\"form.reportType\" name=\"reportType\">\n <option *ngFor=\"let t of reportTypes\" [value]=\"t\">{{ t }}</option>\n </select>\n </div>\n <div class=\"tgm-form-group tgm-form-group--flex\">\n <label class=\"tgm-form-label\">{{ reportFormatLabel }}</label>\n <select class=\"tgm-select\" [(ngModel)]=\"form.reportFormat\" name=\"reportFormat\">\n <option *ngFor=\"let f of reportFormats\" [value]=\"f\">{{ f }}</option>\n </select>\n </div>\n </div>\n\n <!-- Schedule & Delivery Method (side by side) -->\n <div class=\"tgm-form-row\">\n <div class=\"tgm-form-group tgm-form-group--flex\">\n <label class=\"tgm-form-label\">{{ scheduleLabel }}</label>\n <select class=\"tgm-select\" [(ngModel)]=\"form.schedule\" name=\"schedule\">\n <option *ngFor=\"let s of schedules\" [value]=\"s\">{{ s }}</option>\n </select>\n </div>\n <div class=\"tgm-form-group tgm-form-group--flex\">\n <label class=\"tgm-form-label\">{{ deliveryMethodLabel }}</label>\n <div class=\"tgm-radio-group\">\n <label class=\"tgm-radio\" *ngFor=\"let dm of deliveryMethods\">\n <input type=\"radio\" [value]=\"dm\" [(ngModel)]=\"form.deliveryMethod\" name=\"deliveryMethod\" />\n <span class=\"tgm-radio__label\">{{ dm }}</span>\n </label>\n </div>\n </div>\n </div>\n\n <!-- Email Recipients (conditional) -->\n <div class=\"tgm-form-group\" *ngIf=\"showEmailRecipients\">\n <label class=\"tgm-form-label\">{{ emailRecipientsLabel }}</label>\n <input class=\"tgm-input\" type=\"text\" [(ngModel)]=\"form.emailRecipients\" [placeholder]=\"emailRecipientsPlaceholder\" name=\"emailRecipients\" />\n </div>\n\n <!-- Filters JSON -->\n <div class=\"tgm-form-group\">\n <label class=\"tgm-form-label\">{{ filtersLabel }}</label>\n <textarea class=\"tgm-input tgm-textarea tgm-textarea--code\" [(ngModel)]=\"form.filtersJson\" [placeholder]=\"filtersPlaceholder\" name=\"filtersJson\" rows=\"3\"></textarea>\n </div>\n\n <!-- Enabled -->\n <div class=\"tgm-form-group tgm-form-group--inline\">\n <label class=\"tgm-form-label\">{{ enabledLabel }}</label>\n <button class=\"tgm-toggle\" [class.tgm-toggle--active]=\"form.enabled\" (click)=\"form.enabled = !form.enabled\" type=\"button\">\n <span class=\"tgm-toggle__track\">\n <span class=\"tgm-toggle__thumb\"></span>\n </span>\n </button>\n </div>\n </div>\n </ng-template>\n\n <!-- Footer -->\n <ng-container *ngIf=\"footerTemplate; else defaultFooter\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: {\n isEdit: isEdit,\n saving: saving,\n onSave: onSave.bind(this),\n onCancel: onCancel.bind(this)\n }\"></ng-container>\n </ng-container>\n <ng-template #defaultFooter>\n <div class=\"tgm-def-form__footer\">\n <button class=\"tgm-btn tgm-btn--secondary\" (click)=\"onCancel()\" type=\"button\" [disabled]=\"saving\">\n {{ cancelButtonLabel }}\n </button>\n <button class=\"tgm-btn tgm-btn--primary\" (click)=\"onSave()\" type=\"button\" [disabled]=\"saving || !form.name\">\n <span class=\"tgm-spinner tgm-spinner--sm\" *ngIf=\"saving\"></span>\n {{ saveLabel }}\n </button>\n </div>\n </ng-template>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GeneratedReport, ReportStatus } from '../../../models/api/reporting.models';\nimport { ReportingService } from '../../../services/api/reporting.service';\n\n@Component({\n selector: 'tgm-generated-report-list',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './generated-report-list.component.html',\n styleUrls: ['./generated-report-list.component.scss'],\n})\nexport class GeneratedReportListComponent implements OnInit {\n // ── Data ──\n @Input() reports?: GeneratedReport[];\n @Input() loading = false;\n @Input() autoFetch = true;\n @Input() pageSize = 10;\n @Input() showDownload = true;\n @Input() showDelete = true;\n @Input() showPagination = true;\n\n // ── Visible columns ──\n @Input() showName = true;\n @Input() showType = true;\n @Input() showFormat = true;\n @Input() showStatus = true;\n @Input() showRecordCount = true;\n @Input() showFileSize = true;\n @Input() showCreatedAt = true;\n\n // ── Labels ──\n @Input() emptyMessage = 'No generated reports found.';\n @Input() title = '';\n @Input() nameHeader = 'Report';\n @Input() typeHeader = 'Type';\n @Input() formatHeader = 'Format';\n @Input() statusHeader = 'Status';\n @Input() recordCountHeader = 'Records';\n @Input() fileSizeHeader = 'Size';\n @Input() createdAtHeader = 'Created';\n @Input() actionsHeader = 'Actions';\n @Input() downloadLabel = 'Download';\n @Input() deleteLabel = 'Delete';\n @Input() viewLabel = 'View';\n @Input() previousLabel = 'Previous';\n @Input() nextLabel = 'Next';\n\n // ── Status labels (customizable per status) ──\n @Input() statusLabels: Partial<Record<ReportStatus, string>> = {};\n\n // ── CSS overrides ──\n @Input() containerClass = '';\n @Input() tableClass = '';\n\n // ── Custom status CSS classes ──\n @Input() statusClasses: Partial<Record<ReportStatus, string>> = {};\n\n // ── Custom templates ──\n @Input() rowTemplate?: TemplateRef<{ $implicit: GeneratedReport; index: number }>;\n @Input() emptyTemplate?: TemplateRef<void>;\n @Input() loadingTemplate?: TemplateRef<void>;\n @Input() headerTemplate?: TemplateRef<void>;\n @Input() actionsTemplate?: TemplateRef<{ $implicit: GeneratedReport }>;\n @Input() statusTemplate?: TemplateRef<{ $implicit: GeneratedReport }>;\n @Input() paginationTemplate?: TemplateRef<{\n page: number;\n pageSize: number;\n total: number;\n onPageChange: (page: number) => void;\n }>;\n\n // ── Events ──\n @Output() download = new EventEmitter<GeneratedReport>();\n @Output() delete = new EventEmitter<GeneratedReport>();\n @Output() view = new EventEmitter<GeneratedReport>();\n @Output() pageChange = new EventEmitter<{ page: number; size: number }>();\n @Output() reportsFetched = new EventEmitter<GeneratedReport[]>();\n @Output() fetchError = new EventEmitter<any>();\n\n internalReports: GeneratedReport[] = [];\n internalLoading = false;\n currentPage = 0;\n totalItems = 0;\n\n constructor(private reportingService: ReportingService) {}\n\n ngOnInit(): void {\n if (!this.reports && this.autoFetch) {\n this.fetchReports();\n }\n }\n\n get displayReports(): GeneratedReport[] {\n return this.reports ?? this.internalReports;\n }\n\n get isLoading(): boolean {\n return this.loading || this.internalLoading;\n }\n\n get totalPages(): number {\n const total = this.totalItems || this.displayReports.length;\n return Math.ceil(total / this.pageSize) || 1;\n }\n\n get hasPrev(): boolean {\n return this.currentPage > 0;\n }\n\n get hasNext(): boolean {\n return this.currentPage < this.totalPages - 1;\n }\n\n onDownload(report: GeneratedReport): void {\n this.download.emit(report);\n }\n\n onDelete(report: GeneratedReport): void {\n this.delete.emit(report);\n }\n\n onView(report: GeneratedReport): void {\n this.view.emit(report);\n }\n\n onPrevPage(): void {\n if (this.hasPrev) {\n this.currentPage--;\n this.pageChange.emit({ page: this.currentPage, size: this.pageSize });\n if (!this.reports && this.autoFetch) {\n this.fetchReports();\n }\n }\n }\n\n onNextPage(): void {\n if (this.hasNext) {\n this.currentPage++;\n this.pageChange.emit({ page: this.currentPage, size: this.pageSize });\n if (!this.reports && this.autoFetch) {\n this.fetchReports();\n }\n }\n }\n\n goToPage = (page: number): void => {\n this.currentPage = page;\n this.pageChange.emit({ page: this.currentPage, size: this.pageSize });\n if (!this.reports && this.autoFetch) {\n this.fetchReports();\n }\n };\n\n trackById(_index: number, report: GeneratedReport): number {\n return report.id;\n }\n\n getStatusLabel(status: ReportStatus): string {\n return this.statusLabels[status] ?? status;\n }\n\n getStatusClass(status: ReportStatus): string {\n if (this.statusClasses[status]) return this.statusClasses[status]!;\n switch (status) {\n case 'PENDING':\n return 'tgm-status--pending';\n case 'IN_PROGRESS':\n return 'tgm-status--progress';\n case 'COMPLETED':\n return 'tgm-status--completed';\n case 'FAILED':\n return 'tgm-status--failed';\n default:\n return '';\n }\n }\n\n formatDate(dateStr?: string): string {\n if (!dateStr) return '—';\n try {\n return new Date(dateStr).toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n });\n } catch {\n return dateStr;\n }\n }\n\n formatFileSize(bytes?: number): string {\n if (!bytes) return '—';\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n }\n\n private fetchReports(): void {\n this.internalLoading = true;\n this.reportingService.listGeneratedReports(this.currentPage, this.pageSize).subscribe({\n next: (res) => {\n this.internalReports = res.data ?? [];\n this.totalItems = (res as any).total ?? this.internalReports.length;\n this.internalLoading = false;\n this.reportsFetched.emit(this.internalReports);\n },\n error: (err) => {\n this.internalLoading = false;\n this.fetchError.emit(err);\n },\n });\n }\n}\n","<div class=\"tgm-report-list\" [ngClass]=\"containerClass\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <h3 class=\"tgm-report-list__title\" *ngIf=\"title\">{{ title }}</h3>\n </ng-template>\n\n <!-- Loading -->\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else defaultLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultLoading>\n <div class=\"tgm-report-list__loading\">\n <div class=\"tgm-spinner\"></div>\n <p>Loading reports...</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Empty -->\n <ng-container *ngIf=\"!isLoading && displayReports.length === 0\">\n <ng-container *ngIf=\"emptyTemplate; else defaultEmpty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultEmpty>\n <div class=\"tgm-report-list__empty\">\n <p>{{ emptyMessage }}</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Table -->\n <div class=\"tgm-table-wrapper\" *ngIf=\"!isLoading && displayReports.length > 0\">\n <table class=\"tgm-table\" [ngClass]=\"tableClass\">\n <thead>\n <tr>\n <th *ngIf=\"showName\">{{ nameHeader }}</th>\n <th *ngIf=\"showType\">{{ typeHeader }}</th>\n <th *ngIf=\"showFormat\">{{ formatHeader }}</th>\n <th *ngIf=\"showStatus\">{{ statusHeader }}</th>\n <th *ngIf=\"showRecordCount\">{{ recordCountHeader }}</th>\n <th *ngIf=\"showFileSize\">{{ fileSizeHeader }}</th>\n <th *ngIf=\"showCreatedAt\">{{ createdAtHeader }}</th>\n <th *ngIf=\"showDownload || showDelete\">{{ actionsHeader }}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let report of displayReports; let i = index; trackBy: trackById\">\n <!-- Custom row template -->\n <ng-container *ngIf=\"rowTemplate; else defaultRow\">\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: report, index: i }\"></ng-container>\n </ng-container>\n\n <!-- Default row -->\n <ng-template #defaultRow>\n <tr>\n <td *ngIf=\"showName\">\n <span class=\"tgm-report-name\" (click)=\"onView(report)\">{{ report.reportName }}</span>\n </td>\n <td *ngIf=\"showType\">\n <span class=\"tgm-badge tgm-badge--type\">{{ report.reportType }}</span>\n </td>\n <td *ngIf=\"showFormat\">{{ report.reportFormat }}</td>\n <td *ngIf=\"showStatus\">\n <!-- Custom status template -->\n <ng-container *ngIf=\"statusTemplate; else defaultStatus\">\n <ng-container *ngTemplateOutlet=\"statusTemplate; context: { $implicit: report }\"></ng-container>\n </ng-container>\n <ng-template #defaultStatus>\n <span class=\"tgm-status\" [ngClass]=\"getStatusClass(report.status)\">\n {{ getStatusLabel(report.status) }}\n </span>\n </ng-template>\n </td>\n <td *ngIf=\"showRecordCount\">{{ report.recordCount }}</td>\n <td *ngIf=\"showFileSize\">{{ formatFileSize(report.fileSizeBytes) }}</td>\n <td *ngIf=\"showCreatedAt\">{{ formatDate(report.createdAt) }}</td>\n <td *ngIf=\"showDownload || showDelete\">\n <!-- Custom actions -->\n <ng-container *ngIf=\"actionsTemplate; else defaultActions\">\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: report }\"></ng-container>\n </ng-container>\n <ng-template #defaultActions>\n <div class=\"tgm-actions\">\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--ghost\" (click)=\"onView(report)\">{{ viewLabel }}</button>\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--primary\"\n *ngIf=\"showDownload && report.status === 'COMPLETED'\"\n (click)=\"onDownload(report)\">\n {{ downloadLabel }}\n </button>\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--danger\"\n *ngIf=\"showDelete\"\n (click)=\"onDelete(report)\">\n {{ deleteLabel }}\n </button>\n </div>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n\n <!-- Pagination -->\n <ng-container *ngIf=\"showPagination && totalPages > 1\">\n <ng-container *ngIf=\"paginationTemplate; else defaultPagination\">\n <ng-container *ngTemplateOutlet=\"paginationTemplate; context: {\n page: currentPage,\n pageSize: pageSize,\n total: totalItems,\n onPageChange: goToPage\n }\"></ng-container>\n </ng-container>\n <ng-template #defaultPagination>\n <div class=\"tgm-pagination\">\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--ghost\" [disabled]=\"!hasPrev\" (click)=\"onPrevPage()\">\n {{ previousLabel }}\n </button>\n <span class=\"tgm-pagination__info\">{{ currentPage + 1 }} / {{ totalPages }}</span>\n <button class=\"tgm-btn tgm-btn--sm tgm-btn--ghost\" [disabled]=\"!hasNext\" (click)=\"onNextPage()\">\n {{ nextLabel }}\n </button>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReportStats } from '../../../models/api/reporting.models';\nimport { ReportingService } from '../../../services/api/reporting.service';\n\nexport interface StatCard {\n key: string;\n label: string;\n value: number | string;\n icon?: string;\n colorVar?: string;\n}\n\n@Component({\n selector: 'tgm-report-stats',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './report-stats.component.html',\n styleUrls: ['./report-stats.component.scss'],\n})\nexport class ReportStatsComponent implements OnInit {\n // ── Data ──\n @Input() stats?: ReportStats;\n @Input() loading = false;\n @Input() autoFetch = true;\n\n // ── Labels ──\n @Input() title = '';\n @Input() totalDefinitionsLabel = 'Total Definitions';\n @Input() completedLabel = 'Completed';\n @Input() failedLabel = 'Failed';\n @Input() pendingLabel = 'Pending';\n @Input() inProgressLabel = 'In Progress';\n\n // ── Custom stat cards (fully override default cards) ──\n @Input() customCards?: StatCard[];\n\n // ── CSS overrides ──\n @Input() containerClass = '';\n @Input() cardClass = '';\n\n // ── Custom templates ──\n @Input() cardTemplate?: TemplateRef<{ $implicit: StatCard; index: number }>;\n @Input() loadingTemplate?: TemplateRef<void>;\n @Input() headerTemplate?: TemplateRef<void>;\n\n // ── Events ──\n @Output() cardClick = new EventEmitter<string>();\n @Output() statsFetched = new EventEmitter<ReportStats>();\n @Output() fetchError = new EventEmitter<any>();\n\n internalStats?: ReportStats;\n internalLoading = false;\n\n constructor(private reportingService: ReportingService) {}\n\n ngOnInit(): void {\n if (!this.stats && this.autoFetch) {\n this.fetchStats();\n }\n }\n\n get displayStats(): ReportStats | undefined {\n return this.stats ?? this.internalStats;\n }\n\n get isLoading(): boolean {\n return this.loading || this.internalLoading;\n }\n\n get cards(): StatCard[] {\n if (this.customCards) return this.customCards;\n const s = this.displayStats;\n if (!s) return [];\n\n const result: StatCard[] = [\n {\n key: 'totalDefinitions',\n label: this.totalDefinitionsLabel,\n value: s.totalDefinitions,\n colorVar: 'var(--tgm-report-primary)',\n },\n {\n key: 'completed',\n label: this.completedLabel,\n value: s.byStatus?.['COMPLETED'] ?? 0,\n colorVar: 'var(--tgm-report-success)',\n },\n {\n key: 'failed',\n label: this.failedLabel,\n value: s.byStatus?.['FAILED'] ?? 0,\n colorVar: 'var(--tgm-report-danger)',\n },\n {\n key: 'pending',\n label: this.pendingLabel,\n value: s.byStatus?.['PENDING'] ?? 0,\n colorVar: 'var(--tgm-report-warning)',\n },\n {\n key: 'inProgress',\n label: this.inProgressLabel,\n value: s.byStatus?.['IN_PROGRESS'] ?? 0,\n colorVar: 'var(--tgm-report-info)',\n },\n ];\n\n // Add by-type breakdown cards\n if (s.byType) {\n for (const [type, count] of Object.entries(s.byType)) {\n result.push({\n key: `type_${type}`,\n label: type.replace(/_/g, ' '),\n value: count,\n colorVar: 'var(--tgm-report-text-secondary)',\n });\n }\n }\n\n return result;\n }\n\n onCardClick(key: string): void {\n this.cardClick.emit(key);\n }\n\n trackByKey(_index: number, card: StatCard): string {\n return card.key;\n }\n\n private fetchStats(): void {\n this.internalLoading = true;\n this.reportingService.getReportStats().subscribe({\n next: (res) => {\n this.internalStats = res.data;\n this.internalLoading = false;\n if (this.internalStats) {\n this.statsFetched.emit(this.internalStats);\n }\n },\n error: (err) => {\n this.internalLoading = false;\n this.fetchError.emit(err);\n },\n });\n }\n}\n","<div class=\"tgm-stats\" [ngClass]=\"containerClass\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <h3 class=\"tgm-stats__title\" *ngIf=\"title\">{{ title }}</h3>\n </ng-template>\n\n <!-- Loading -->\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else defaultLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultLoading>\n <div class=\"tgm-stats__loading\">\n <div class=\"tgm-spinner\"></div>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Cards Grid -->\n <div class=\"tgm-stats__grid\" *ngIf=\"!isLoading && cards.length > 0\">\n <ng-container *ngFor=\"let card of cards; let i = index; trackBy: trackByKey\">\n <!-- Custom card template -->\n <ng-container *ngIf=\"cardTemplate; else defaultCard\">\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: card, index: i }\"></ng-container>\n </ng-container>\n\n <!-- Default card -->\n <ng-template #defaultCard>\n <div class=\"tgm-stat-card\" [ngClass]=\"cardClass\" (click)=\"onCardClick(card.key)\"\n [style.--card-accent]=\"card.colorVar || 'var(--tgm-report-primary)'\">\n <span class=\"tgm-stat-card__value\">{{ card.value }}</span>\n <span class=\"tgm-stat-card__label\">{{ card.label }}</span>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ExportService } from '../../../services/api/export.service';\n\nexport type ExportFormat = 'excel' | 'csv' | 'pdf';\n\ninterface ExportEntityConfig {\n excel?: (ids?: number[]) => any;\n csv?: (ids?: number[]) => any;\n pdf?: (ids?: number[]) => any;\n}\n\n@Component({\n selector: 'tgm-export-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './export-button.component.html',\n styleUrls: ['./export-button.component.scss'],\n})\nexport class ExportButtonComponent {\n // ── Data ──\n @Input() entityType = '';\n @Input() entityIds?: number[];\n @Input() formats: ExportFormat[] = ['excel', 'csv', 'pdf'];\n @Input() disabled = false;\n @Input() autoExport = true;\n\n // ── Labels ──\n @Input() label = 'Export';\n @Input() excelLabel = 'Excel';\n @Input() csvLabel = 'CSV';\n @Input() pdfLabel = 'PDF';\n\n // ── CSS overrides ──\n @Input() buttonClass = '';\n @Input() dropdownClass = '';\n\n // ── Custom templates ──\n @Input() buttonTemplate?: TemplateRef<{\n label: string;\n open: boolean;\n disabled: boolean;\n exporting: boolean;\n toggle: () => void;\n }>;\n @Input() menuItemTemplate?: TemplateRef<{\n $implicit: ExportFormat;\n label: string;\n onExport: () => void;\n }>;\n\n // ── Events ──\n @Output() exportStarted = new EventEmitter<{ format: ExportFormat; entityType: string }>();\n @Output() exportCompleted = new EventEmitter<Blob>();\n @Output() exportError = new EventEmitter<Error>();\n\n dropdownOpen = false;\n exporting = false;\n\n private entityMethodMap: Record<string, ExportEntityConfig> = {};\n\n constructor(private exportService: ExportService) {\n this.buildEntityMethodMap();\n }\n\n @HostListener('document:click')\n onDocumentClick(): void {\n this.dropdownOpen = false;\n }\n\n toggleDropdown = (): void => {\n this.dropdownOpen = !this.dropdownOpen;\n };\n\n onButtonClick(event: Event): void {\n event.stopPropagation();\n if (this.formats.length === 1) {\n this.onExport(this.formats[0]);\n } else {\n this.toggleDropdown();\n }\n }\n\n onMenuClick(event: Event): void {\n event.stopPropagation();\n }\n\n onExport(format: ExportFormat): void {\n this.dropdownOpen = false;\n this.exportStarted.emit({ format, entityType: this.entityType });\n\n if (!this.autoExport) return;\n\n const config = this.entityMethodMap[this.entityType];\n const method = config?.[format];\n if (!method) {\n this.exportError.emit(new Error(`Export not available for ${this.entityType} in ${format} format`));\n return;\n }\n\n this.exporting = true;\n method(this.entityIds).subscribe({\n next: (blob: Blob) => {\n this.exporting = false;\n this.exportCompleted.emit(blob);\n },\n error: (err: any) => {\n this.exporting = false;\n this.exportError.emit(err);\n },\n });\n }\n\n getFormatLabel(format: ExportFormat): string {\n switch (format) {\n case 'excel':\n return this.excelLabel;\n case 'csv':\n return this.csvLabel;\n case 'pdf':\n return this.pdfLabel;\n }\n }\n\n trackByFormat(_index: number, format: ExportFormat): string {\n return format;\n }\n\n private buildEntityMethodMap(): void {\n const svc = this.exportService;\n this.entityMethodMap = {\n inspections: {\n excel: (ids) => svc.exportInspectionsExcel(ids),\n csv: (ids) => svc.exportInspectionsCsv(ids),\n pdf: (ids) => svc.exportInspectionsPdf(ids),\n },\n interventions: {\n excel: (ids) => svc.exportInterventionsExcel(ids),\n csv: (ids) => svc.exportInterventionsCsv(ids),\n pdf: (ids) => svc.exportInterventionsPdf(ids),\n },\n failures: {\n excel: (ids) => svc.exportFailuresExcel(ids),\n csv: (ids) => svc.exportFailuresCsv(ids),\n pdf: (ids) => svc.exportFailuresPdf(ids),\n },\n components: {\n excel: (ids) => svc.exportComponentsExcel(ids),\n },\n units: {\n excel: (ids) => svc.exportUnitsExcel(ids),\n },\n 'gate-systems': {\n excel: (ids) => svc.exportGateSystemsExcel(ids),\n csv: (ids) => svc.exportGateSystemsCsv(ids),\n pdf: (ids) => svc.exportGateSystemsPdf(ids),\n },\n 'fish-monitoring': {\n excel: (ids) => svc.exportFishMonitoringExcel(ids),\n csv: (ids) => svc.exportFishMonitoringCsv(ids),\n pdf: (ids) => svc.exportFishMonitoringPdf(ids),\n },\n 'bathymetric-surveys': {\n excel: (ids) => svc.exportBathymetricSurveysExcel(ids),\n csv: (ids) => svc.exportBathymetricSurveysCsv(ids),\n pdf: (ids) => svc.exportBathymetricSurveysPdf(ids),\n },\n 'laboratory-results': {\n excel: (ids) => svc.exportLaboratoryResultsExcel(ids),\n csv: (ids) => svc.exportLaboratoryResultsCsv(ids),\n pdf: (ids) => svc.exportLaboratoryResultsPdf(ids),\n },\n 'manual-readings': {\n excel: (ids) => svc.exportManualReadingsExcel(ids),\n csv: (ids) => svc.exportManualReadingsCsv(ids),\n pdf: (ids) => svc.exportManualReadingsPdf(ids),\n },\n 'operational-observations': {\n excel: (ids) => svc.exportOperationalObservationsExcel(ids),\n csv: (ids) => svc.exportOperationalObservationsCsv(ids),\n pdf: (ids) => svc.exportOperationalObservationsPdf(ids),\n },\n 'regulatory-updates': {\n excel: (ids) => svc.exportRegulatoryUpdatesExcel(ids),\n csv: (ids) => svc.exportRegulatoryUpdatesCsv(ids),\n pdf: (ids) => svc.exportRegulatoryUpdatesPdf(ids),\n },\n 'ai-scenarios': {\n excel: (ids) => svc.exportAIScenariosExcel(ids),\n csv: (ids) => svc.exportAIScenariosCsv(ids),\n pdf: (ids) => svc.exportAIScenariosPdf(ids),\n },\n 'alert-definitions': {\n excel: (ids) => svc.exportAlertDefinitionsExcel(ids),\n csv: (ids) => svc.exportAlertDefinitionsCsv(ids),\n pdf: (ids) => svc.exportAlertDefinitionsPdf(ids),\n },\n };\n }\n}\n","<div class=\"tgm-export\">\n <!-- Custom button template -->\n <ng-container *ngIf=\"buttonTemplate; else defaultButton\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {\n label: label,\n open: dropdownOpen,\n disabled: disabled,\n exporting: exporting,\n toggle: toggleDropdown\n }\"></ng-container>\n </ng-container>\n\n <!-- Default button -->\n <ng-template #defaultButton>\n <button\n class=\"tgm-export__btn\"\n [ngClass]=\"buttonClass\"\n [disabled]=\"disabled || exporting\"\n (click)=\"onButtonClick($event)\"\n type=\"button\"\n >\n <span class=\"tgm-spinner tgm-spinner--sm\" *ngIf=\"exporting\"></span>\n <span>{{ label }}</span>\n <span class=\"tgm-export__caret\" *ngIf=\"formats.length > 1\">▾</span>\n </button>\n </ng-template>\n\n <!-- Dropdown Menu -->\n <div class=\"tgm-export__dropdown\" [ngClass]=\"dropdownClass\" *ngIf=\"dropdownOpen && formats.length > 1\" (click)=\"onMenuClick($event)\">\n <ng-container *ngFor=\"let fmt of formats; trackBy: trackByFormat\">\n <!-- Custom menu item -->\n <ng-container *ngIf=\"menuItemTemplate; else defaultMenuItem\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate; context: {\n $implicit: fmt,\n label: getFormatLabel(fmt),\n onExport: onExport.bind(this, fmt)\n }\"></ng-container>\n </ng-container>\n\n <!-- Default menu item -->\n <ng-template #defaultMenuItem>\n <button class=\"tgm-export__item\" (click)=\"onExport(fmt)\" type=\"button\">\n {{ getFormatLabel(fmt) }}\n </button>\n </ng-template>\n </ng-container>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReportTemplateListComponent } from './report-template-list/report-template-list.component';\nimport { ReportGenerateDialogComponent } from './report-generate-dialog/report-generate-dialog.component';\nimport { ReportDefinitionListComponent } from './report-definition-list/report-definition-list.component';\nimport { ReportDefinitionFormComponent } from './report-definition-form/report-definition-form.component';\nimport { GeneratedReportListComponent } from './generated-report-list/generated-report-list.component';\nimport { ReportStatsComponent } from './report-stats/report-stats.component';\nimport { ExportButtonComponent } from './export-button/export-button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReportTemplateListComponent,\n ReportGenerateDialogComponent,\n ReportDefinitionListComponent,\n ReportDefinitionFormComponent,\n GeneratedReportListComponent,\n ReportStatsComponent,\n ExportButtonComponent,\n ],\n exports: [\n ReportTemplateListComponent,\n ReportGenerateDialogComponent,\n ReportDefinitionListComponent,\n ReportDefinitionFormComponent,\n GeneratedReportListComponent,\n ReportStatsComponent,\n ExportButtonComponent,\n ],\n})\nexport class ReportingModule {}\n","import { EntityFieldMeta, EntityRegistryEntry } from '../types/database-manager.types';\n\n/**\n * Shared base fields present on every entity (BaseEntity).\n */\nconst BASE_FIELDS: EntityFieldMeta[] = [\n { name: 'id', label: 'ID', type: 'number', editable: false, sortable: true, filterable: true },\n { name: 'createdAt', label: 'Created At', type: 'date', editable: false, sortable: true, filterable: true },\n { name: 'updatedAt', label: 'Updated At', type: 'date', editable: false, sortable: true, filterable: true },\n];\n\nfunction fields(...extra: EntityFieldMeta[]): EntityFieldMeta[] {\n return [...BASE_FIELDS, ...extra];\n}\n\nfunction str(name: string, label: string, opts: Partial<EntityFieldMeta> = {}): EntityFieldMeta {\n return { name, label, type: 'string', ...opts };\n}\n\nfunction num(name: string, label: string, opts: Partial<EntityFieldMeta> = {}): EntityFieldMeta {\n return { name, label, type: 'number', ...opts };\n}\n\nfunction bool(name: string, label: string, opts: Partial<EntityFieldMeta> = {}): EntityFieldMeta {\n return { name, label, type: 'boolean', ...opts };\n}\n\nfunction date(name: string, label: string, opts: Partial<EntityFieldMeta> = {}): EntityFieldMeta {\n return { name, label, type: 'date', ...opts };\n}\n\nfunction enm(name: string, label: string, values: string[], opts: Partial<EntityFieldMeta> = {}): EntityFieldMeta {\n return { name, label, type: 'enum', enumValues: values, ...opts };\n}\n\nfunction json(name: string, label: string, opts: Partial<EntityFieldMeta> = {}): EntityFieldMeta {\n return { name, label, type: 'json', sortable: false, ...opts };\n}\n\nfunction arr(name: string, label: string, opts: Partial<EntityFieldMeta> = {}): EntityFieldMeta {\n return { name, label, type: 'array', sortable: false, ...opts };\n}\n\n// ─── Enum value constants (mirroring SDK enums) ─────────────────────\n\nconst UNIT_STATUSES = ['SHUTDOWN', 'IN_OPERATION', 'UNDER_CONSTRUCTION', 'PROJECT_STAGE'];\nconst PLANT_STATUSES = ['IN_OPERATION', 'UNDER_CONSTRUCTION', 'PROJECT_STAGE', 'OUT_OF_SERVICE'];\nconst PREMISE_TYPES = ['PLANT', 'OFFICE', 'WAREHOUSE', 'DAM', 'HYBRID_PLANT', 'OTHER'];\nconst PLANT_SIZES = ['SMALL', 'MEDIUM', 'LARGE'];\nconst COMPONENT_TYPES = ['STANDALONE', 'REGULAR', 'HYBRID_PLANT'];\nconst COMPONENT_CATEGORIES = ['ASSET', 'PIPING', 'PROTECTION_CONTROL', 'HYBRID_PLANT', 'INSTRUMENTATION'];\nconst COMPONENT_STATUSES = ['ACTIVE', 'INACTIVE'];\nconst WO_STATUSES = ['COMPLETED', 'IN_PROGRESS', 'PENDING', 'CANCELLED', 'PLANNED_NOT_SCHEDULED', 'DRAFT', 'PLANNED_SCHEDULED', 'CLOSED'];\nconst MAINTENANCE_TYPES = ['PREVENTIVE', 'PREDICTIVE', 'DETECTIVE', 'REACTIVE', 'CORRECTIVE'];\nconst PRIORITIES = ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];\nconst COST_ALLOCATIONS = ['PREVENTIVE', 'CORRECTIVE', 'SPECIAL_MAINTENANCE', 'EMERGENCY', 'CONTINGENCIES', 'PROJECT'];\nconst INSPECTION_TYPES = ['V', 'M', 'F', 'A', 'E', 'ALL'];\nconst INSPECTION_LEVELS = ['BASIC', 'ADVANCED', 'COMPLETE'];\nconst INSPECTION_NATURES = ['PERIODIC', 'NON_PERIODIC'];\nconst REASONS_INSPECTION = ['DUE_TO_EVENT', 'MAINTENANCE', 'DUE_TO_MAINTENANCE', 'CONDITION_ASSESSMENT', 'DUE_TO_INSPECTION', 'DUE_TO_INTERVENTION_REQUEST', 'SAFETY_PROGRAM_INSPECTIONS', 'WORK_REQUIRE_MANAGEMENT', 'PREV_AND_PRED_MAINTENANCE', 'AUDITS', 'OTHERS'];\nconst REASONS_INTERVENTION = ['DUE_TO_MAINTENANCE', 'DUE_TO_EVENT', 'DUE_TO_INTERVENTION_REQUEST', 'OPERATOR_OBS_AND_EMPLOYEE_CONCERNS', 'PREV_AND_PRED_MAINTENANCE', 'POINTS_RAISED', 'SAFETY_PROGRAM_INSPECTIONS', 'WORK_REQUIRE_MANAGEMENT', 'REGULATORY_REQUIREMENTS', 'EQUIPMENT_IMPROVEMENTS', 'AUDITS', 'INCIDENTS_DAMAGES', 'OTHERS'];\nconst EVENT_NATURES = ['INCIDENT', 'FAILURE', 'PERTURBATION'];\nconst VEHICLE_STATUSES = ['AVAILABLE', 'IN_USE', 'MAINTENANCE'];\nconst VEHICLE_TYPES = ['TRUCK', 'VAN', 'CAR', 'SUV', 'EQUIPMENT', 'TRAILER'];\nconst FUEL_TYPES = ['GASOLINE', 'DIESEL', 'ELECTRIC', 'HYBRID', 'PROPANE', 'NATURAL_GAS'];\nconst DRIVER_STATUSES = ['ACTIVE', 'INACTIVE', 'SUSPENDED'];\nconst TRIP_STATUSES = ['IN_PROGRESS', 'COMPLETED'];\nconst GEOFENCE_TYPES = ['CIRCLE', 'POLYGON'];\nconst SENSOR_TYPES = ['TEMPERATURE', 'PRESSURE', 'VIBRATION', 'FLOW_RATE', 'LEVEL', 'HUMIDITY', 'VOLTAGE', 'CURRENT', 'POWER', 'SPEED', 'PH', 'CONDUCTIVITY', 'TURBIDITY', 'DISSOLVED_OXYGEN', 'OTHER'];\nconst ALERT_SEVERITIES = ['INFO', 'WARNING', 'CRITICAL', 'EMERGENCY'];\nconst ALERT_STATUSES = ['ACTIVE', 'ACKNOWLEDGED', 'RESOLVED', 'ESCALATED'];\nconst OBLIGATION_TYPES = ['REPORTING', 'MONITORING', 'INSPECTION', 'TESTING', 'FILING'];\nconst OBLIGATION_STATUSES = ['ACTIVE', 'COMPLETED', 'OVERDUE', 'WAIVED'];\nconst SUBMISSION_STATUSES = ['DRAFT', 'SUBMITTED', 'UNDER_REVIEW', 'APPROVED', 'REJECTED', 'REVISION_REQUIRED'];\nconst PERMIT_TYPES = ['AIR', 'WATER', 'WASTE', 'NOISE', 'LAND_USE', 'ENVIRONMENTAL_IMPACT'];\nconst PERMIT_STATUSES = ['ACTIVE', 'EXPIRED', 'SUSPENDED', 'REVOKED', 'PENDING_RENEWAL'];\nconst ANCILLARY_TYPES = ['FREQUENCY_REGULATION', 'SPINNING_RESERVE', 'NON_SPINNING_RESERVE', 'VOLTAGE_SUPPORT', 'BLACK_START', 'REACTIVE_POWER'];\nconst ANCILLARY_STATUSES = ['ACTIVE', 'EXPIRED', 'SUSPENDED', 'PENDING'];\nconst GRID_STATUSES = ['ACTIVE', 'INACTIVE', 'UNDER_MAINTENANCE', 'DISCONNECTED'];\nconst CURTAILMENT_TYPES = ['ECONOMIC', 'RELIABILITY', 'ENVIRONMENTAL', 'TRANSMISSION_CONSTRAINT', 'VOLUNTARY'];\nconst CURTAILMENT_STATUSES = ['ACTIVE', 'COMPLETED', 'CANCELLED'];\nconst WARRANTY_STATUSES = ['ACTIVE', 'EXPIRED', 'CANCELLED', 'PENDING'];\nconst WARRANTY_TYPES = ['MANUFACTURER', 'EXTENDED', 'COMPONENT', 'SERVICE'];\nconst WARRANTY_CLAIM_STATUSES = ['DRAFT', 'SUBMITTED', 'UNDER_REVIEW', 'APPROVED', 'REJECTED', 'PAID', 'CLOSED'];\nconst RCA_STATUSES = ['DRAFT', 'IN_PROGRESS', 'PENDING_REVIEW', 'UNDER_REVIEW', 'APPROVED', 'REJECTED', 'CLOSED', 'ARCHIVED'];\nconst RCA_METHODOLOGIES = ['FIVE_WHYS', 'FISHBONE', 'FAULT_TREE', 'PARETO', 'FMEA', 'COMBINED'];\nconst GATE_TYPES = ['INTAKE', 'SPILLWAY', 'OUTLET', 'EMERGENCY'];\nconst READING_TYPES = ['WATER_LEVEL', 'FLOW', 'GATE_POSITION', 'PRESSURE', 'TEMPERATURE'];\nconst SAMPLE_TYPES = ['WATER_QUALITY', 'SEDIMENT', 'BIOLOGICAL'];\nconst OBSERVATION_CATEGORIES = ['WEATHER', 'EQUIPMENT_BEHAVIOR', 'WATER_QUALITY', 'WILDLIFE', 'SAFETY', 'OTHER'];\nconst OBSERVATION_SEVERITIES = ['INFORMATIONAL', 'ATTENTION_REQUIRED', 'URGENT'];\nconst SURVEY_METHODS = ['MULTIBEAM_SONAR', 'SINGLE_BEAM', 'LIDAR', 'GPS'];\nconst AI_SCENARIO_TYPES = ['GRID_REQUEST', 'WATER_PRESERVATION', 'OEM_RECOMMENDATIONS'];\n\n// ─── The Registry ───────────────────────────────────────────────────\n\nexport const ENTITY_REGISTRY: EntityRegistryEntry[] = [\n\n // ━━━ CORE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'companies', name: 'Companies', module: 'CORE',\n description: 'Client organizations / companies',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('description', 'Description'),\n str('address', 'Address'),\n str('phone', 'Phone'),\n str('email', 'Email'),\n str('website', 'Website'),\n str('logo', 'Logo URL'),\n str('timezone', 'Timezone'),\n str('currency', 'Currency'),\n str('language', 'Language'),\n ),\n },\n\n {\n key: 'units', name: 'Units', module: 'CORE',\n description: 'Production / generation units',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n enm('status', 'Status', UNIT_STATUSES),\n enm('plantStatus', 'Plant Status', PLANT_STATUSES),\n enm('premiseType', 'Premise Type', PREMISE_TYPES),\n enm('plantSize', 'Plant Size', PLANT_SIZES),\n num('companyId', 'Company ID'),\n num('locationId', 'Location ID'),\n num('latitude', 'Latitude'),\n num('longitude', 'Longitude'),\n num('capacity', 'Capacity'),\n date('commissioningDate', 'Commissioning Date'),\n ),\n },\n\n {\n key: 'components', name: 'Components', module: 'CORE',\n description: 'Equipment components attached to units',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n enm('type', 'Type', COMPONENT_TYPES),\n enm('category', 'Category', COMPONENT_CATEGORIES),\n enm('status', 'Status', COMPONENT_STATUSES),\n num('unitId', 'Unit ID'),\n num('parentComponentId', 'Parent Component ID'),\n str('manufacturer', 'Manufacturer'),\n str('model', 'Model'),\n str('serialNumber', 'Serial Number'),\n date('installDate', 'Install Date'),\n date('warrantyEndDate', 'Warranty End Date'),\n ),\n },\n\n {\n key: 'component-groups', name: 'Component Groups', module: 'CORE',\n description: 'Logical groupings of components',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('description', 'Description'),\n num('unitId', 'Unit ID'),\n ),\n },\n\n {\n key: 'sub-assemblies', name: 'Sub-Assemblies', module: 'CORE',\n description: 'Sub-assemblies within components',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n num('componentId', 'Component ID'),\n ),\n },\n\n {\n key: 'locations', name: 'Locations', module: 'CORE',\n description: 'Physical locations / sites',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('address', 'Address'),\n str('city', 'City'),\n str('state', 'State / Province'),\n str('country', 'Country'),\n str('postalCode', 'Postal Code'),\n num('latitude', 'Latitude'),\n num('longitude', 'Longitude'),\n num('companyId', 'Company ID'),\n bool('isHeadQuarters', 'Is Headquarters'),\n str('region', 'Region'),\n str('timezone', 'Timezone'),\n ),\n },\n\n {\n key: 'departments', name: 'Departments', module: 'CORE',\n description: 'Organizational departments',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('description', 'Description'),\n num('companyId', 'Company ID'),\n num('managerId', 'Manager ID'),\n ),\n },\n\n {\n key: 'users', name: 'Users', module: 'CORE',\n description: 'System users / employees',\n fields: fields(\n str('username', 'Username', { required: true }),\n str('email', 'Email', { required: true }),\n str('firstName', 'First Name'),\n str('lastName', 'Last Name'),\n str('fullName', 'Full Name', { editable: false }),\n str('phone', 'Phone'),\n str('position', 'Position'),\n bool('confirmed', 'Confirmed'),\n bool('blocked', 'Blocked'),\n bool('isActive', 'Active'),\n ),\n },\n\n {\n key: 'suppliers', name: 'Suppliers', module: 'CORE',\n description: 'External suppliers / vendors',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('contactName', 'Contact Name'),\n str('email', 'Email'),\n str('phone', 'Phone'),\n str('address', 'Address'),\n str('website', 'Website'),\n ),\n },\n\n // ━━━ MAINTENANCE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'interventions', name: 'Interventions', module: 'MAINTENANCE',\n description: 'Maintenance interventions',\n fields: fields(\n str('number', 'Number'),\n str('title', 'Title'),\n str('description', 'Description'),\n enm('reason', 'Reason', REASONS_INTERVENTION),\n num('unitId', 'Unit ID'),\n num('componentId', 'Component ID'),\n date('startDate', 'Start Date'),\n date('endDate', 'End Date'),\n num('duration', 'Duration (hrs)'),\n str('notes', 'Notes'),\n ),\n },\n\n {\n key: 'intervention-requests', name: 'Intervention Requests', module: 'MAINTENANCE',\n description: 'Requests for maintenance intervention',\n fields: fields(\n str('number', 'Number'),\n str('title', 'Title'),\n str('description', 'Description'),\n num('unitId', 'Unit ID'),\n num('componentId', 'Component ID'),\n num('requestedById', 'Requested By ID'),\n str('priority', 'Priority'),\n str('status', 'Status'),\n ),\n },\n\n {\n key: 'failures', name: 'Failures', module: 'MAINTENANCE',\n description: 'Equipment failures and incidents',\n fields: fields(\n str('number', 'Number'),\n str('title', 'Title'),\n str('description', 'Description'),\n enm('nature', 'Nature', EVENT_NATURES),\n num('unitId', 'Unit ID'),\n num('componentId', 'Component ID'),\n date('failureDate', 'Failure Date'),\n date('resolutionDate', 'Resolution Date'),\n str('impact', 'Impact'),\n str('rootCause', 'Root Cause'),\n ),\n },\n\n // ━━━ INSPECTIONS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'inspections', name: 'Inspections', module: 'INSPECTIONS',\n description: 'Equipment and site inspections',\n fields: fields(\n str('number', 'Number'),\n str('title', 'Title'),\n str('description', 'Description'),\n enm('type', 'Type', INSPECTION_TYPES),\n enm('level', 'Level', INSPECTION_LEVELS),\n enm('nature', 'Nature', INSPECTION_NATURES),\n enm('reason', 'Reason', REASONS_INSPECTION),\n num('unitId', 'Unit ID'),\n num('componentId', 'Component ID'),\n num('inspectorId', 'Inspector ID'),\n num('locationId', 'Location ID'),\n date('inspectionDate', 'Inspection Date'),\n date('nextInspectionDate', 'Next Inspection Date'),\n str('result', 'Result'),\n str('recommendations', 'Recommendations'),\n ),\n },\n\n {\n key: 'maintenance-records', name: 'Maintenance Records', module: 'MAINTENANCE',\n description: 'Unified maintenance records (inspections + interventions)',\n fields: fields(\n enm('recordType', 'Record Type', ['INSPECTION', 'INTERVENTION']),\n str('reportNumber', 'Report Number'),\n str('title', 'Title'),\n enm('status', 'Status', WO_STATUSES),\n enm('priority', 'Priority', PRIORITIES),\n str('maintenanceType', 'Maintenance Type'),\n date('plannedDate', 'Planned Date'),\n date('startDate', 'Start Date'),\n date('scheduleDate', 'Schedule Date'),\n str('costAllocation', 'Cost Allocation'),\n str('actionPlan', 'Action Plan'),\n str('comments', 'Comments'),\n str('recommendations', 'Recommendations'),\n str('inspectionType', 'Inspection Type'),\n str('inspectionNature', 'Inspection Nature'),\n str('inspectionLevel', 'Inspection Level'),\n str('reasonForInspection', 'Reason for Inspection'),\n str('reasonForIntervention', 'Reason for Intervention'),\n str('eventNature', 'Event Nature'),\n bool('immediate', 'Immediate'),\n json('customFields', 'Custom Fields'),\n ),\n },\n\n // ━━━ MATERIALS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'material-items', name: 'Material Items', module: 'MATERIALS',\n description: 'Inventory items for maintenance',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n num('categoryId', 'Category ID'),\n num('quantity', 'Quantity'),\n num('minimumQuantity', 'Min Quantity'),\n num('reorderPoint', 'Reorder Point'),\n num('maxQuantity', 'Max Quantity'),\n num('unitCost', 'Unit Cost'),\n str('location', 'Location'),\n num('supplierId', 'Supplier ID'),\n ),\n },\n\n {\n key: 'material-consumables', name: 'Consumables', module: 'MATERIALS',\n description: 'Consumable materials',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n num('categoryId', 'Category ID'),\n num('quantity', 'Quantity'),\n num('unitCost', 'Unit Cost'),\n num('supplierId', 'Supplier ID'),\n ),\n },\n\n {\n key: 'material-instruments', name: 'Instruments', module: 'MATERIALS',\n description: 'Measuring instruments',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n str('serialNumber', 'Serial Number'),\n date('calibrationDate', 'Calibration Date'),\n date('nextCalibrationDate', 'Next Calibration'),\n ),\n },\n\n {\n key: 'material-tooling', name: 'Tooling', module: 'MATERIALS',\n description: 'Maintenance tools and tooling',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n str('condition', 'Condition'),\n str('location', 'Location'),\n ),\n },\n\n {\n key: 'spare-parts', name: 'Spare Parts', module: 'MATERIALS',\n description: 'Spare parts linked to components',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n num('componentId', 'Component ID'),\n num('materialItemId', 'Material Item ID'),\n num('quantity', 'Quantity'),\n ),\n },\n\n // ━━━ FLEET ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'vehicles', name: 'Vehicles', module: 'FLEET',\n description: 'Fleet vehicles',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('plateNumber', 'Plate Number'),\n str('vin', 'VIN'),\n enm('type', 'Type', VEHICLE_TYPES),\n enm('status', 'Status', VEHICLE_STATUSES),\n str('make', 'Make'),\n str('model', 'Model'),\n num('year', 'Year'),\n enm('fuelType', 'Fuel Type', FUEL_TYPES),\n num('currentMileage', 'Mileage'),\n num('companyId', 'Company ID'),\n ),\n },\n\n {\n key: 'drivers', name: 'Drivers', module: 'FLEET',\n description: 'Fleet drivers',\n fields: fields(\n num('userId', 'User ID'),\n str('licenseNumber', 'License Number'),\n date('licenseExpiry', 'License Expiry'),\n enm('status', 'Status', DRIVER_STATUSES),\n ),\n },\n\n {\n key: 'vehicle-trips', name: 'Vehicle Trips', module: 'FLEET',\n description: 'Vehicle trip records',\n fields: fields(\n num('vehicleId', 'Vehicle ID'),\n num('driverId', 'Driver ID'),\n enm('status', 'Status', TRIP_STATUSES),\n str('startLocation', 'Start Location'),\n str('endLocation', 'End Location'),\n num('startMileage', 'Start Mileage'),\n num('endMileage', 'End Mileage'),\n date('startTime', 'Start Time'),\n date('endTime', 'End Time'),\n ),\n },\n\n {\n key: 'fuel-records', name: 'Fuel Records', module: 'FLEET',\n description: 'Fuel consumption records',\n fields: fields(\n num('vehicleId', 'Vehicle ID'),\n enm('fuelType', 'Fuel Type', FUEL_TYPES),\n num('quantity', 'Quantity'),\n num('cost', 'Cost'),\n num('mileage', 'Mileage'),\n date('fuelDate', 'Fuel Date'),\n ),\n },\n\n {\n key: 'geofences', name: 'Geofences', module: 'FLEET',\n description: 'Geographic boundary definitions',\n fields: fields(\n str('name', 'Name', { required: true }),\n num('companyId', 'Company ID'),\n enm('geofenceType', 'Geofence Type', GEOFENCE_TYPES),\n num('centerLatitude', 'Center Lat'),\n num('centerLongitude', 'Center Lng'),\n num('radius', 'Radius'),\n bool('alertOnEnter', 'Alert on Enter'),\n bool('alertOnExit', 'Alert on Exit'),\n bool('isActive', 'Active'),\n ),\n },\n\n // ━━━ PROJECTS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'projects', name: 'Projects', module: 'PROJECTS',\n description: 'Project management',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n str('status', 'Status'),\n date('startDate', 'Start Date'),\n date('endDate', 'End Date'),\n num('budget', 'Budget'),\n num('managerId', 'Manager ID'),\n num('companyId', 'Company ID'),\n ),\n },\n\n {\n key: 'capex-projects', name: 'CAPEX Projects', module: 'PROJECTS',\n description: 'Capital expenditure projects',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n str('status', 'Status'),\n num('budget', 'Budget'),\n num('actualCost', 'Actual Cost'),\n date('startDate', 'Start Date'),\n date('endDate', 'End Date'),\n num('companyId', 'Company ID'),\n ),\n },\n\n {\n key: 'budgets', name: 'Budgets', module: 'PROJECTS',\n description: 'Budget allocations',\n fields: fields(\n str('name', 'Name', { required: true }),\n num('year', 'Year'),\n num('amount', 'Amount'),\n num('spent', 'Spent'),\n num('remaining', 'Remaining'),\n num('departmentId', 'Department ID'),\n num('categoryId', 'Category ID'),\n ),\n },\n\n {\n key: 'bids', name: 'Bids', module: 'PROJECTS',\n description: 'Vendor bids for projects',\n fields: fields(\n str('title', 'Title'),\n str('description', 'Description'),\n str('vendorName', 'Vendor'),\n num('amount', 'Amount'),\n str('status', 'Status'),\n date('submittedDate', 'Submitted Date'),\n num('projectId', 'Project ID'),\n ),\n },\n\n // ━━━ DOCUMENTS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'files', name: 'Files', module: 'DOCUMENTS',\n description: 'Uploaded files',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('description', 'Description'),\n num('folderId', 'Folder ID'),\n num('size', 'Size (bytes)'),\n str('mimeType', 'MIME Type'),\n str('url', 'URL'),\n ),\n },\n\n {\n key: 'folders', name: 'Folders', module: 'DOCUMENTS',\n description: 'File system folders',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('description', 'Description'),\n num('parentId', 'Parent Folder ID'),\n ),\n },\n\n {\n key: 'drawings', name: 'Drawings', module: 'DOCUMENTS',\n description: 'Engineering drawings',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('number', 'Number'),\n str('description', 'Description'),\n num('categoryId', 'Category ID'),\n num('unitId', 'Unit ID'),\n num('componentId', 'Component ID'),\n str('revision', 'Revision'),\n ),\n },\n\n // ━━━ COMPLIANCE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'compliance-obligations', name: 'Compliance Obligations', module: 'COMPLIANCE',\n description: 'Regulatory obligations and requirements',\n fields: fields(\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n enm('obligationType', 'Obligation Type', OBLIGATION_TYPES),\n enm('status', 'Status', OBLIGATION_STATUSES),\n num('permitId', 'Permit ID'),\n num('responsibleUserId', 'Responsible User ID'),\n str('requirements', 'Requirements'),\n date('nextDueDate', 'Next Due Date'),\n date('lastCompletedDate', 'Last Completed'),\n ),\n },\n\n {\n key: 'compliance-submissions', name: 'Compliance Submissions', module: 'COMPLIANCE',\n description: 'Regulatory compliance submissions',\n fields: fields(\n str('submissionReference', 'Reference'),\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n num('obligationId', 'Obligation ID'),\n enm('status', 'Status', SUBMISSION_STATUSES),\n date('periodStart', 'Period Start'),\n date('periodEnd', 'Period End'),\n date('submittedDate', 'Submitted Date'),\n ),\n },\n\n {\n key: 'environmental-permits', name: 'Environmental Permits', module: 'COMPLIANCE',\n description: 'Environmental permits and licenses',\n fields: fields(\n str('permitNumber', 'Permit Number', { required: true }),\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n enm('permitType', 'Permit Type', PERMIT_TYPES),\n enm('status', 'Status', PERMIT_STATUSES),\n str('issuingAuthority', 'Issuing Authority'),\n num('unitId', 'Unit ID'),\n num('locationId', 'Location ID'),\n date('issueDate', 'Issue Date'),\n date('expiryDate', 'Expiry Date'),\n date('renewalDate', 'Renewal Date'),\n num('permitFee', 'Permit Fee'),\n num('annualFee', 'Annual Fee'),\n ),\n },\n\n {\n key: 'certifications', name: 'Certifications', module: 'COMPLIANCE',\n description: 'Industry certifications',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('description', 'Description'),\n str('certificationBody', 'Certification Body'),\n date('certificationDate', 'Certification Date'),\n date('expiryDate', 'Expiry Date'),\n str('status', 'Status'),\n ),\n },\n\n // ━━━ ENERGY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'ancillary-services', name: 'Ancillary Services', module: 'ENERGY',\n description: 'Grid ancillary services contracts',\n fields: fields(\n str('serviceName', 'Service Name', { required: true }),\n str('description', 'Description'),\n enm('serviceType', 'Service Type', ANCILLARY_TYPES),\n enm('status', 'Status', ANCILLARY_STATUSES),\n str('contractNumber', 'Contract Number'),\n str('gridOperator', 'Grid Operator'),\n num('unitId', 'Unit ID'),\n date('startDate', 'Start Date'),\n date('endDate', 'End Date'),\n num('committedCapacityMw', 'Committed MW'),\n num('ratePerMw', 'Rate / MW'),\n num('monthlyRevenue', 'Monthly Revenue'),\n ),\n },\n\n {\n key: 'grid-connections', name: 'Grid Connections', module: 'ENERGY',\n description: 'Electrical grid interconnections',\n fields: fields(\n str('connectionName', 'Name', { required: true }),\n str('description', 'Description'),\n enm('status', 'Status', GRID_STATUSES),\n str('gridOperator', 'Grid Operator'),\n num('unitId', 'Unit ID'),\n num('voltageLevelKv', 'Voltage (kV)'),\n num('maxExportCapacityMw', 'Max Export MW'),\n num('maxImportCapacityMw', 'Max Import MW'),\n date('connectionDate', 'Connection Date'),\n ),\n },\n\n {\n key: 'curtailment-events', name: 'Curtailment Events', module: 'ENERGY',\n description: 'Power generation curtailment events',\n fields: fields(\n str('eventNumber', 'Event Number'),\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n enm('curtailmentType', 'Type', CURTAILMENT_TYPES),\n enm('status', 'Status', CURTAILMENT_STATUSES),\n num('unitId', 'Unit ID'),\n date('startTime', 'Start Time'),\n date('endTime', 'End Time'),\n num('curtailedCapacityMw', 'Curtailed MW'),\n num('lostRevenue', 'Lost Revenue'),\n ),\n },\n\n // ━━━ WARRANTY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'warranty-contracts', name: 'Warranty Contracts', module: 'WARRANTY',\n description: 'Equipment warranty contracts',\n fields: fields(\n str('contractNumber', 'Contract Number', { required: true }),\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n enm('warrantyType', 'Type', WARRANTY_TYPES),\n enm('status', 'Status', WARRANTY_STATUSES),\n str('providerName', 'Provider'),\n str('providerEmail', 'Provider Email'),\n date('startDate', 'Start Date'),\n date('endDate', 'End Date'),\n num('maxClaimAmount', 'Max Claim'),\n num('contractCost', 'Contract Cost'),\n ),\n },\n\n {\n key: 'warranty-claims', name: 'Warranty Claims', module: 'WARRANTY',\n description: 'Claims against warranty contracts',\n fields: fields(\n str('claimNumber', 'Claim Number', { required: true }),\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n enm('status', 'Status', WARRANTY_CLAIM_STATUSES),\n num('warrantyContractId', 'Contract ID'),\n num('unitId', 'Unit ID'),\n num('claimedAmount', 'Claimed'),\n num('approvedAmount', 'Approved'),\n num('paidAmount', 'Paid'),\n date('incidentDate', 'Incident Date'),\n date('submittedDate', 'Submitted Date'),\n ),\n },\n\n // ━━━ RESERVOIR ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'gate-systems', name: 'Gate Systems', module: 'RESERVOIR',\n description: 'Dam gate control systems',\n fields: fields(\n str('gateId', 'Gate ID'),\n enm('gateType', 'Gate Type', GATE_TYPES),\n str('name', 'Name'),\n str('description', 'Description'),\n str('status', 'Status'),\n json('physicalCharacteristics', 'Physical Specs'),\n json('controlSystem', 'Control System'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'alert-definitions', name: 'Alert Definitions', module: 'RESERVOIR',\n description: 'Reservoir alert configurations',\n fields: fields(\n str('name', 'Name'),\n str('description', 'Description'),\n str('alertCategory', 'Category'),\n str('severityLevel', 'Severity'),\n bool('enabled', 'Enabled'),\n json('triggerConditions', 'Trigger Conditions'),\n json('notificationSettings', 'Notifications'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'manual-readings', name: 'Manual Readings', module: 'RESERVOIR',\n description: 'Manually recorded sensor readings',\n fields: fields(\n date('readingDate', 'Reading Date'),\n enm('readingType', 'Reading Type', READING_TYPES),\n str('location', 'Location'),\n str('gaugeId', 'Gauge ID'),\n num('value', 'Value'),\n str('unit', 'Unit'),\n num('operatorId', 'Operator ID'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'laboratory-results', name: 'Laboratory Results', module: 'RESERVOIR',\n description: 'Water quality lab results',\n fields: fields(\n enm('sampleType', 'Sample Type', SAMPLE_TYPES),\n date('sampleDate', 'Sample Date'),\n str('sampleLocation', 'Sample Location'),\n str('labName', 'Lab Name'),\n str('labReportId', 'Report ID'),\n json('parameters', 'Parameters'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'fish-monitoring', name: 'Fish Monitoring', module: 'RESERVOIR',\n description: 'Fish passage and population monitoring',\n fields: fields(\n date('monitoringDate', 'Monitoring Date'),\n str('monitoringLocation', 'Location'),\n json('speciesCounts', 'Species Counts'),\n json('environmentalConditions', 'Environmental Conditions'),\n str('notes', 'Notes'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'bathymetric-surveys', name: 'Bathymetric Surveys', module: 'RESERVOIR',\n description: 'Reservoir bed surveys',\n fields: fields(\n date('surveyDate', 'Survey Date'),\n enm('surveyMethod', 'Method', SURVEY_METHODS),\n num('coveragePercentage', 'Coverage %'),\n num('totalCapacity', 'Total Capacity'),\n num('sedimentVolume', 'Sediment Volume'),\n str('reportUrl', 'Report URL'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'operational-observations', name: 'Operational Observations', module: 'RESERVOIR',\n description: 'Operator field observations',\n fields: fields(\n str('title', 'Title'),\n enm('category', 'Category', OBSERVATION_CATEGORIES),\n str('description', 'Description'),\n enm('severity', 'Severity', OBSERVATION_SEVERITIES),\n bool('followUpRequired', 'Follow-Up Required'),\n str('status', 'Status'),\n num('operatorId', 'Operator ID'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'regulatory-updates', name: 'Regulatory Updates', module: 'RESERVOIR',\n description: 'Regulatory changes and updates',\n fields: fields(\n str('title', 'Title'),\n str('updateType', 'Update Type'),\n str('issuingAgency', 'Issuing Agency'),\n str('description', 'Description'),\n str('actionRequired', 'Action Required'),\n date('dueDate', 'Due Date'),\n str('status', 'Status'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'ai-scenarios', name: 'AI Scenarios', module: 'RESERVOIR',\n description: 'AI-generated operational scenarios',\n fields: fields(\n str('name', 'Name'),\n enm('type', 'Type', AI_SCENARIO_TYPES),\n str('description', 'Description'),\n num('confidence', 'Confidence'),\n bool('selected', 'Selected'),\n bool('implemented', 'Implemented'),\n json('simulationInputs', 'Simulation Inputs'),\n json('metrics', 'Metrics'),\n num('locationId', 'Location ID'),\n ),\n },\n\n // ━━━ QUALITY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'root-cause-analyses', name: 'Root Cause Analyses', module: 'QUALITY',\n description: 'RCA investigations',\n fields: fields(\n str('title', 'Title'),\n str('description', 'Description'),\n enm('status', 'Status', RCA_STATUSES),\n enm('methodology', 'Methodology', RCA_METHODOLOGIES),\n num('failureId', 'Failure ID'),\n num('eventId', 'Event ID'),\n str('findings', 'Findings'),\n str('recommendations', 'Recommendations'),\n ),\n },\n\n {\n key: 'systemic-risk-assessments', name: 'Systemic Risk Assessments', module: 'QUALITY',\n description: 'Cross-system risk evaluations',\n fields: fields(\n str('title', 'Title'),\n str('description', 'Description'),\n str('riskLevel', 'Risk Level'),\n num('unitId', 'Unit ID'),\n str('findings', 'Findings'),\n str('recommendations', 'Recommendations'),\n ),\n },\n\n // ━━━ KNOWLEDGE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'articles', name: 'Articles', module: 'KNOWLEDGE',\n description: 'Knowledge base articles',\n fields: fields(\n str('title', 'Title', { required: true }),\n str('content', 'Content'),\n num('categoryId', 'Category ID'),\n str('author', 'Author'),\n date('publishedAt', 'Published At'),\n str('status', 'Status'),\n ),\n },\n\n {\n key: 'best-practices', name: 'Best Practices', module: 'KNOWLEDGE',\n description: 'Industry best practices',\n fields: fields(\n str('title', 'Title', { required: true }),\n str('content', 'Content'),\n num('categoryId', 'Category ID'),\n ),\n },\n\n {\n key: 'faqs', name: 'FAQs', module: 'KNOWLEDGE',\n description: 'Frequently asked questions',\n fields: fields(\n str('question', 'Question', { required: true }),\n str('answer', 'Answer'),\n num('categoryId', 'Category ID'),\n ),\n },\n\n {\n key: 'lessons-learned', name: 'Lessons Learned', module: 'KNOWLEDGE',\n description: 'Post-event lessons learned',\n fields: fields(\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n str('lesson', 'Lesson'),\n ),\n },\n\n // ━━━ SENSORS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'sensors', name: 'Sensors', module: 'SENSORS',\n description: 'IoT sensors attached to equipment',\n fields: fields(\n str('name', 'Name', { required: true }),\n str('code', 'Code'),\n str('description', 'Description'),\n enm('type', 'Type', SENSOR_TYPES),\n num('unitId', 'Unit ID'),\n num('componentId', 'Component ID'),\n str('unit', 'Measurement Unit'),\n num('minValue', 'Min Value'),\n num('maxValue', 'Max Value'),\n bool('isActive', 'Active'),\n ),\n },\n\n {\n key: 'sensor-alerts', name: 'Sensor Alerts', module: 'SENSORS',\n description: 'Alerts triggered by sensor thresholds',\n fields: fields(\n num('sensorId', 'Sensor ID'),\n enm('severity', 'Severity', ALERT_SEVERITIES),\n enm('status', 'Status', ALERT_STATUSES),\n str('message', 'Message'),\n num('value', 'Value'),\n num('threshold', 'Threshold'),\n date('acknowledgedAt', 'Acknowledged At'),\n date('resolvedAt', 'Resolved At'),\n ),\n },\n\n // ━━━ MISC ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n {\n key: 'todos', name: 'Todos', module: 'MISC',\n description: 'Personal to-do items',\n fields: fields(\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n bool('completed', 'Completed'),\n date('dueDate', 'Due Date'),\n num('assignedToId', 'Assigned To ID'),\n ),\n },\n\n {\n key: 'notes', name: 'Notes', module: 'MISC',\n description: 'Notes attached to any entity',\n fields: fields(\n str('title', 'Title'),\n str('content', 'Content'),\n str('entityType', 'Entity Type'),\n num('entityId', 'Entity ID'),\n num('authorId', 'Author ID'),\n ),\n },\n\n {\n key: 'incidents', name: 'Incidents', module: 'MISC',\n description: 'Safety and operational incidents',\n fields: fields(\n str('title', 'Title'),\n str('description', 'Description'),\n str('type', 'Type'),\n str('severity', 'Severity'),\n num('unitId', 'Unit ID'),\n date('reportedDate', 'Reported Date'),\n ),\n },\n\n {\n key: 'events', name: 'Events', module: 'MISC',\n description: 'Calendar / scheduled events',\n fields: fields(\n str('title', 'Title', { required: true }),\n str('description', 'Description'),\n date('startDate', 'Start Date'),\n date('endDate', 'End Date'),\n num('locationId', 'Location ID'),\n ),\n },\n\n {\n key: 'messages', name: 'Messages', module: 'MISC',\n description: 'Internal messaging',\n fields: fields(\n str('content', 'Content'),\n num('senderId', 'Sender ID'),\n num('recipientId', 'Recipient ID'),\n bool('read', 'Read'),\n ),\n },\n];\n\n/**\n * Entity keys that are excluded from the browser by default.\n * Consumers can override via `DatabaseManagerConfig.excludedEntities`.\n */\nexport const DEFAULT_EXCLUDED_ENTITIES: string[] = [\n 'login-requests',\n 'login-history',\n 'jsa-items',\n 'jsa-steps',\n 'component-checklists',\n 'properties',\n 'fonts',\n 'terms-of-use',\n];\n\n/**\n * Human-readable labels for each module code.\n */\nexport const MODULE_LABELS: Record<string, string> = {\n CORE: 'Core',\n MAINTENANCE: 'Maintenance',\n INSPECTIONS: 'Inspections',\n MATERIALS: 'Materials',\n FLEET: 'Fleet Management',\n PROJECTS: 'Projects',\n DOCUMENTS: 'Documents',\n COMPLIANCE: 'Compliance',\n ENERGY: 'Energy',\n WARRANTY: 'Warranty',\n RESERVOIR: 'Reservoir',\n QUALITY: 'Quality',\n KNOWLEDGE: 'Knowledge Base',\n SENSORS: 'Sensors & IoT',\n MISC: 'Miscellaneous',\n};\n\n/**\n * Map of entity key → service class name (as exported from the SDK).\n * Used by QueryExecutorService to resolve the correct service at runtime.\n */\nexport const ENTITY_SERVICE_MAP: Record<string, string> = {\n 'companies': 'CompanyService',\n 'units': 'UnitService',\n 'components': 'ComponentService',\n 'component-groups': 'ComponentGroupService',\n 'sub-assemblies': 'SubAssemblyService',\n 'locations': 'LocationService',\n 'departments': 'DepartmentService',\n 'users': 'UserService',\n 'suppliers': 'SupplierService',\n 'interventions': 'InterventionService',\n 'intervention-requests': 'InterventionRequestService',\n 'failures': 'FailureService',\n 'inspections': 'InspectionService',\n 'maintenance-records': 'MaintenanceRecordService',\n 'material-items': 'MaterialItemService',\n 'material-consumables': 'MaterialConsumableService',\n 'material-instruments': 'MaterialInstrumentService',\n 'material-tooling': 'MaterialToolingService',\n 'spare-parts': 'SparePartService',\n 'vehicles': 'VehicleService',\n 'drivers': 'DriverService',\n 'vehicle-trips': 'VehicleTripService',\n 'fuel-records': 'FuelRecordService',\n 'geofences': 'GeofenceService',\n 'projects': 'ProjectService',\n 'capex-projects': 'CapexProjectService',\n 'budgets': 'BudgetService',\n 'bids': 'BidService',\n 'files': 'TgFileService',\n 'folders': 'TgFolderService',\n 'drawings': 'DrawingService',\n 'compliance-obligations': 'ComplianceObligationService',\n 'compliance-submissions': 'ComplianceSubmissionService',\n 'environmental-permits': 'EnvironmentalPermitService',\n 'certifications': 'CertificationService',\n 'ancillary-services': 'AncillaryServiceCrudService',\n 'grid-connections': 'GridConnectionService',\n 'curtailment-events': 'CurtailmentEventService',\n 'warranty-contracts': 'WarrantyContractService',\n 'warranty-claims': 'WarrantyClaimService',\n 'gate-systems': 'GateSystemService',\n 'alert-definitions': 'AlertDefinitionService',\n 'manual-readings': 'ManualReadingService',\n 'laboratory-results': 'LaboratoryResultService',\n 'fish-monitoring': 'FishMonitoringService',\n 'bathymetric-surveys': 'BathymetricSurveyService',\n 'operational-observations': 'OperationalObservationService',\n 'regulatory-updates': 'RegulatoryUpdateService',\n 'ai-scenarios': 'AIScenarioService',\n 'root-cause-analyses': 'RootCauseAnalysisService',\n 'systemic-risk-assessments': 'SystemicRiskAssessmentService',\n 'articles': 'ArticleService',\n 'best-practices': 'BestPracticeService',\n 'faqs': 'FaqService',\n 'lessons-learned': 'LessonLearnedService',\n 'sensors': 'SensorService',\n 'sensor-alerts': 'AlertService',\n 'todos': 'TodoService',\n 'notes': 'NoteService',\n 'incidents': 'IncidentService',\n 'events': 'EventService',\n 'messages': 'MessageService',\n};\n","import { Injectable } from '@angular/core';\nimport { EntityRegistryEntry, EntityModuleGroup, DatabaseManagerConfig } from '../types/database-manager.types';\nimport { ENTITY_REGISTRY, DEFAULT_EXCLUDED_ENTITIES, MODULE_LABELS } from '../registry/entity-registry';\n\n/**\n * Provides filtered entity metadata based on the DatabaseManagerConfig.\n * Filters by enabled modules and excluded entities, and groups entities by module.\n */\n@Injectable({ providedIn: 'root' })\nexport class EntitySchemaService {\n private cachedEntities: EntityRegistryEntry[] | null = null;\n private cachedGroups: EntityModuleGroup[] | null = null;\n private currentConfig: DatabaseManagerConfig | null = null;\n\n /**\n * Returns all entity definitions filtered by the given config.\n */\n getEntities(config?: DatabaseManagerConfig): EntityRegistryEntry[] {\n if (this.cachedEntities && this.currentConfig === config) {\n return this.cachedEntities;\n }\n this.currentConfig = config ?? null;\n const enabledModules = config?.enabledModules;\n const excludedEntities = config?.excludedEntities ?? DEFAULT_EXCLUDED_ENTITIES;\n\n let entities = ENTITY_REGISTRY;\n\n if (enabledModules && enabledModules.length > 0) {\n const moduleSet = new Set(enabledModules.map(m => m.toUpperCase()));\n entities = entities.filter(e => moduleSet.has(e.module));\n }\n\n if (excludedEntities.length > 0) {\n const excludeSet = new Set(excludedEntities);\n entities = entities.filter(e => !excludeSet.has(e.key));\n }\n\n this.cachedEntities = entities;\n this.cachedGroups = null; // invalidate group cache\n return entities;\n }\n\n /**\n * Returns entities grouped by module, with human-readable labels.\n */\n getEntityGroups(config?: DatabaseManagerConfig, customLabels?: Record<string, string>): EntityModuleGroup[] {\n if (this.cachedGroups && this.currentConfig === config) {\n return this.cachedGroups;\n }\n\n const entities = this.getEntities(config);\n const labels = { ...MODULE_LABELS, ...customLabels };\n const groupMap = new Map<string, EntityRegistryEntry[]>();\n\n for (const entity of entities) {\n const arr = groupMap.get(entity.module) ?? [];\n arr.push(entity);\n groupMap.set(entity.module, arr);\n }\n\n this.cachedGroups = Array.from(groupMap.entries()).map(([code, ents]) => ({\n code,\n label: labels[code] ?? code,\n entities: ents,\n expanded: false,\n }));\n\n return this.cachedGroups;\n }\n\n /**\n * Find a single entity by its key.\n */\n getEntityByKey(key: string, config?: DatabaseManagerConfig): EntityRegistryEntry | undefined {\n return this.getEntities(config).find(e => e.key === key);\n }\n\n /**\n * Returns entity keys that are visible (not excluded, module enabled).\n */\n getVisibleEntityKeys(config?: DatabaseManagerConfig): string[] {\n return this.getEntities(config).map(e => e.key);\n }\n\n /**\n * Check whether an entity key is accessible under the current config.\n */\n isEntityVisible(key: string, config?: DatabaseManagerConfig): boolean {\n return this.getVisibleEntityKeys(config).includes(key);\n }\n\n /**\n * Invalidate cached data (call when config changes).\n */\n invalidateCache(): void {\n this.cachedEntities = null;\n this.cachedGroups = null;\n this.currentConfig = null;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { EntityRegistryEntry, EntityModuleGroup, DatabaseManagerConfig } from '../types/database-manager.types';\nimport { EntitySchemaService } from '../services/entity-schema.service';\n\n@Component({\n selector: 'tgm-object-browser',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './object-browser.component.html',\n styleUrls: ['./object-browser.component.scss'],\n})\nexport class ObjectBrowserComponent implements OnChanges {\n // ── Data ──\n @Input() config?: DatabaseManagerConfig;\n @Input() selectedEntity?: EntityRegistryEntry;\n\n // ── Labels ──\n @Input() searchPlaceholder = 'Search entities...';\n @Input() groupLabels?: Record<string, string>;\n\n // ── Custom templates ──\n @Input() entityTemplate?: TemplateRef<{ $implicit: EntityRegistryEntry }>;\n @Input() groupTemplate?: TemplateRef<{ $implicit: EntityModuleGroup }>;\n\n // ── Events ──\n @Output() selectEntity = new EventEmitter<EntityRegistryEntry>();\n @Output() doubleClickEntity = new EventEmitter<EntityRegistryEntry>();\n\n searchTerm = '';\n groups: EntityModuleGroup[] = [];\n filteredGroups: EntityModuleGroup[] = [];\n\n constructor(private entitySchema: EntitySchemaService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config'] || changes['groupLabels']) {\n this.loadGroups();\n }\n }\n\n onSearch(): void {\n this.filterGroups();\n }\n\n toggleGroup(group: EntityModuleGroup): void {\n group.expanded = !group.expanded;\n }\n\n onSelectEntity(entity: EntityRegistryEntry): void {\n this.selectEntity.emit(entity);\n }\n\n onDoubleClick(entity: EntityRegistryEntry): void {\n this.doubleClickEntity.emit(entity);\n }\n\n isSelected(entity: EntityRegistryEntry): boolean {\n return this.selectedEntity?.key === entity.key;\n }\n\n trackByCode(_index: number, group: EntityModuleGroup): string {\n return group.code;\n }\n\n trackByKey(_index: number, entity: EntityRegistryEntry): string {\n return entity.key;\n }\n\n private loadGroups(): void {\n this.groups = this.entitySchema.getEntityGroups(this.config, this.groupLabels).map(g => ({\n ...g,\n expanded: true,\n }));\n this.filterGroups();\n }\n\n private filterGroups(): void {\n const term = this.searchTerm.toLowerCase().trim();\n if (!term) {\n this.filteredGroups = this.groups;\n return;\n }\n\n this.filteredGroups = this.groups\n .map(group => ({\n ...group,\n expanded: true,\n entities: group.entities.filter(\n e => e.name.toLowerCase().includes(term) || e.key.toLowerCase().includes(term),\n ),\n }))\n .filter(g => g.entities.length > 0);\n }\n}\n","<div class=\"tgm-object-browser\">\n <!-- Search -->\n <div class=\"tgm-object-browser__search\">\n <input\n type=\"text\"\n class=\"tgm-object-browser__input\"\n [placeholder]=\"searchPlaceholder\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"onSearch()\"\n />\n </div>\n\n <!-- Tree -->\n <div class=\"tgm-object-browser__tree\">\n <ng-container *ngFor=\"let group of filteredGroups; trackBy: trackByCode\">\n <!-- Custom group template -->\n <ng-container *ngIf=\"groupTemplate; else defaultGroup\">\n <ng-container *ngTemplateOutlet=\"groupTemplate; context: { $implicit: group }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultGroup>\n <div class=\"tgm-object-browser__group\">\n <div\n class=\"tgm-object-browser__group-header\"\n (click)=\"toggleGroup(group)\"\n >\n <span class=\"tgm-object-browser__arrow\" [class.tgm-object-browser__arrow--expanded]=\"group.expanded\">\n ▶\n </span>\n <span class=\"tgm-object-browser__group-label\">{{ group.label }}</span>\n <span class=\"tgm-object-browser__group-count\">{{ group.entities.length }}</span>\n </div>\n\n <div class=\"tgm-object-browser__entities\" *ngIf=\"group.expanded\">\n <ng-container *ngFor=\"let entity of group.entities; trackBy: trackByKey\">\n <!-- Custom entity template -->\n <ng-container *ngIf=\"entityTemplate; else defaultEntity\">\n <ng-container *ngTemplateOutlet=\"entityTemplate; context: { $implicit: entity }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultEntity>\n <div\n class=\"tgm-object-browser__entity\"\n [class.tgm-object-browser__entity--selected]=\"isSelected(entity)\"\n (click)=\"onSelectEntity(entity)\"\n (dblclick)=\"onDoubleClick(entity)\"\n [title]=\"entity.description || entity.name\"\n >\n <span class=\"tgm-object-browser__entity-icon\">▣</span>\n <span class=\"tgm-object-browser__entity-name\">{{ entity.name }}</span>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Empty state -->\n <div class=\"tgm-object-browser__empty\" *ngIf=\"filteredGroups.length === 0\">\n <p>No entities found.</p>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { EntityRegistryEntry } from '../types/database-manager.types';\nimport { ENTITY_REGISTRY } from '../registry/entity-registry';\n\ndeclare const monaco: any;\n\n@Component({\n selector: 'tgm-query-editor',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './query-editor.component.html',\n styleUrls: ['./query-editor.component.scss'],\n})\nexport class QueryEditorComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n // ── Data ──\n @Input() value = '';\n @Input() entitySchema?: EntityRegistryEntry;\n @Input() enableMonaco = true;\n @Input() monacoOptions?: any;\n\n // ── Labels ──\n @Input() placeholder = '{ \"entity\": \"inspections\", \"filters\": { \"status\": \"PENDING\" }, \"sort\": \"createdAt\", \"order\": \"DESC\" }';\n @Input() editorClass = '';\n\n // ── Events ──\n @Output() valueChange = new EventEmitter<string>();\n @Output() execute = new EventEmitter<string>();\n\n @ViewChild('monacoContainer', { static: false }) monacoContainer?: ElementRef;\n @ViewChild('textareaEl', { static: false }) textareaEl?: ElementRef;\n\n monacoAvailable = false;\n private monacoEditor: any = null;\n private completionDisposable: any = null;\n\n ngOnInit(): void {\n this.monacoAvailable = this.enableMonaco && typeof monaco !== 'undefined';\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['value'] && this.monacoEditor) {\n const currentVal = this.monacoEditor.getValue();\n if (currentVal !== this.value) {\n this.monacoEditor.setValue(this.value);\n }\n }\n }\n\n ngOnDestroy(): void {\n this.completionDisposable?.dispose();\n this.monacoEditor?.dispose();\n }\n\n onMonacoInit(): void {\n if (!this.monacoAvailable || !this.monacoContainer) return;\n\n const defaultOptions = {\n value: this.value,\n language: 'json',\n theme: 'vs-dark',\n minimap: { enabled: false },\n lineNumbers: 'on' as const,\n scrollBeyondLastLine: false,\n automaticLayout: true,\n fontSize: 14,\n fontFamily: 'var(--tgm-db-font-mono)',\n tabSize: 2,\n wordWrap: 'on' as const,\n padding: { top: 8 },\n };\n\n const opts = { ...defaultOptions, ...this.monacoOptions };\n\n try {\n this.monacoEditor = monaco.editor.create(this.monacoContainer.nativeElement, opts);\n\n // Listen for changes\n this.monacoEditor.onDidChangeModelContent(() => {\n const val = this.monacoEditor.getValue();\n this.value = val;\n this.valueChange.emit(val);\n });\n\n // Ctrl+Enter → execute\n this.monacoEditor.addCommand(\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter,\n () => this.execute.emit(this.monacoEditor.getValue()),\n );\n\n // Register auto-completion\n this.registerCompletionProvider();\n } catch {\n this.monacoAvailable = false;\n }\n }\n\n onTextareaInput(event: Event): void {\n const val = (event.target as HTMLTextAreaElement).value;\n this.value = val;\n this.valueChange.emit(val);\n }\n\n onTextareaKeydown(event: KeyboardEvent): void {\n if ((event.ctrlKey || event.metaKey) && event.key === 'Enter') {\n event.preventDefault();\n this.execute.emit(this.value);\n }\n }\n\n /**\n * Called after view init if Monaco is available.\n */\n ngAfterViewInit(): void {\n if (this.monacoAvailable) {\n // Small delay to ensure the container is rendered\n setTimeout(() => this.onMonacoInit(), 50);\n }\n }\n\n private registerCompletionProvider(): void {\n if (!monaco?.languages) return;\n\n this.completionDisposable = monaco.languages.registerCompletionItemProvider('json', {\n provideCompletionItems: (model: any, position: any) => {\n const textUntilPosition = model.getValueInRange({\n startLineNumber: 1,\n startColumn: 1,\n endLineNumber: position.lineNumber,\n endColumn: position.column,\n });\n\n const suggestions: any[] = [];\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n // Suggest entity names after \"entity\":\n if (/\"entity\"\\s*:\\s*\"[^\"]*$/.test(textUntilPosition)) {\n for (const entry of ENTITY_REGISTRY) {\n suggestions.push({\n label: entry.key,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: entry.key,\n detail: entry.name,\n documentation: entry.description,\n range,\n });\n }\n }\n // Suggest top-level keys\n else if (/{\\s*(\"[^\"]*\"\\s*:\\s*[^,]*,\\s*)*\"?[^\"]*$/.test(textUntilPosition) && !/\"filters\"\\s*:\\s*\\{/.test(textUntilPosition.slice(-100))) {\n const keys = ['entity', 'select', 'filters', 'sort', 'order', 'page', 'pageSize'];\n for (const key of keys) {\n suggestions.push({\n label: key,\n kind: monaco.languages.CompletionItemKind.Property,\n insertText: `\"${key}\"`,\n range,\n });\n }\n }\n // Suggest sort order values\n else if (/\"order\"\\s*:\\s*\"[^\"]*$/.test(textUntilPosition)) {\n for (const val of ['ASC', 'DESC']) {\n suggestions.push({\n label: val,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: val,\n range,\n });\n }\n }\n // Suggest field names for filters/sort\n else if (this.entitySchema) {\n const fields = this.entitySchema.fields;\n for (const field of fields) {\n suggestions.push({\n label: field.name,\n kind: monaco.languages.CompletionItemKind.Field,\n insertText: field.type === 'enum' || field.type === 'string' ? `\"${field.name}\"` : `\"${field.name}\"`,\n detail: `${field.type}${field.enumValues ? ` (${field.enumValues.length} values)` : ''}`,\n documentation: field.description || field.label,\n range,\n });\n }\n }\n\n return { suggestions };\n },\n });\n }\n}\n","<div class=\"tgm-query-editor\" [ngClass]=\"editorClass\">\n <!-- Monaco Editor -->\n <div\n *ngIf=\"monacoAvailable\"\n #monacoContainer\n class=\"tgm-query-editor__monaco\"\n ></div>\n\n <!-- Textarea Fallback -->\n <textarea\n *ngIf=\"!monacoAvailable\"\n #textareaEl\n class=\"tgm-query-editor__textarea\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n (input)=\"onTextareaInput($event)\"\n (keydown)=\"onTextareaKeydown($event)\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n ></textarea>\n\n <div class=\"tgm-query-editor__hint\">\n Press <kbd>Ctrl</kbd>+<kbd>Enter</kbd> to execute\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tgm-query-toolbar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './query-toolbar.component.html',\n styleUrls: ['./query-toolbar.component.scss'],\n})\nexport class QueryToolbarComponent {\n // ── State ──\n @Input() executing = false;\n @Input() disabled = false;\n @Input() showHistory = true;\n @Input() showFormat = true;\n\n // ── Labels ──\n @Input() executeLabel = 'Execute';\n @Input() formatLabel = 'Format';\n @Input() clearLabel = 'Clear';\n @Input() historyLabel = 'History';\n\n // ── Custom templates ──\n @Input() toolbarTemplate?: TemplateRef<void>;\n\n // ── Events ──\n @Output() execute = new EventEmitter<void>();\n @Output() format = new EventEmitter<void>();\n @Output() clear = new EventEmitter<void>();\n @Output() toggleHistory = new EventEmitter<void>();\n\n onExecute(): void {\n if (!this.executing && !this.disabled) {\n this.execute.emit();\n }\n }\n\n onFormat(): void {\n this.format.emit();\n }\n\n onClear(): void {\n this.clear.emit();\n }\n\n onToggleHistory(): void {\n this.toggleHistory.emit();\n }\n}\n","<div class=\"tgm-query-toolbar\">\n <ng-container *ngIf=\"toolbarTemplate; else defaultToolbar\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </ng-container>\n\n <ng-template #defaultToolbar>\n <div class=\"tgm-query-toolbar__left\">\n <button\n class=\"tgm-db-btn tgm-db-btn--primary\"\n [disabled]=\"executing || disabled\"\n (click)=\"onExecute()\"\n >\n <span class=\"tgm-db-btn__icon\" *ngIf=\"!executing\">▶</span>\n <span class=\"tgm-db-spinner--sm\" *ngIf=\"executing\"></span>\n {{ executeLabel }}\n </button>\n\n <button\n *ngIf=\"showFormat\"\n class=\"tgm-db-btn tgm-db-btn--ghost\"\n [disabled]=\"disabled\"\n (click)=\"onFormat()\"\n >\n {{ formatLabel }}\n </button>\n\n <button\n class=\"tgm-db-btn tgm-db-btn--ghost\"\n [disabled]=\"disabled\"\n (click)=\"onClear()\"\n >\n {{ clearLabel }}\n </button>\n </div>\n\n <div class=\"tgm-query-toolbar__right\">\n <button\n *ngIf=\"showHistory\"\n class=\"tgm-db-btn tgm-db-btn--ghost\"\n (click)=\"onToggleHistory()\"\n >\n {{ historyLabel }}\n </button>\n </div>\n </ng-template>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EntityFieldMeta } from '../types/database-manager.types';\n\n@Component({\n selector: 'tgm-results-grid',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './results-grid.component.html',\n styleUrls: ['./results-grid.component.scss'],\n})\nexport class ResultsGridComponent {\n // ── Data ──\n @Input() data: any[] = [];\n @Input() columns: EntityFieldMeta[] = [];\n @Input() total = 0;\n @Input() page = 0;\n @Input() pageSize = 25;\n @Input() loading = false;\n @Input() sortField?: string;\n @Input() sortOrder?: 'ASC' | 'DESC';\n\n // ── Behavior ──\n @Input() showPagination = true;\n @Input() showExport = false;\n\n // ── Labels ──\n @Input() noResultsMessage = 'No results found.';\n @Input() loadingMessage = 'Executing query...';\n\n // ── CSS overrides ──\n @Input() rowClass = '';\n\n // ── Custom templates ──\n @Input() cellTemplate?: TemplateRef<{ $implicit: any; column: EntityFieldMeta; row: any }>;\n @Input() headerTemplate?: TemplateRef<{ $implicit: EntityFieldMeta }>;\n @Input() emptyTemplate?: TemplateRef<void>;\n @Input() paginationTemplate?: TemplateRef<{ page: number; pageSize: number; total: number }>;\n\n // ── Events ──\n @Output() sort = new EventEmitter<{ field: string; order: 'ASC' | 'DESC' }>();\n @Output() pageChange = new EventEmitter<number>();\n @Output() rowClick = new EventEmitter<any>();\n @Output() rowDoubleClick = new EventEmitter<any>();\n @Output() cellClick = new EventEmitter<{ row: any; column: EntityFieldMeta; value: any }>();\n @Output() exportData = new EventEmitter<void>();\n\n get visibleColumns(): EntityFieldMeta[] {\n return this.columns.filter(c => !c.hidden);\n }\n\n get pageCount(): number {\n return this.pageSize > 0 ? Math.ceil(this.total / this.pageSize) : 1;\n }\n\n get startRow(): number {\n return this.page * this.pageSize + 1;\n }\n\n get endRow(): number {\n return Math.min((this.page + 1) * this.pageSize, this.total);\n }\n\n onSort(field: string): void {\n const col = this.columns.find(c => c.name === field);\n if (col?.sortable === false) return;\n\n let order: 'ASC' | 'DESC' = 'ASC';\n if (this.sortField === field && this.sortOrder === 'ASC') {\n order = 'DESC';\n }\n this.sortField = field;\n this.sortOrder = order;\n this.sort.emit({ field, order });\n }\n\n onRowClick(row: any): void {\n this.rowClick.emit(row);\n }\n\n onRowDoubleClick(row: any): void {\n this.rowDoubleClick.emit(row);\n }\n\n onCellClick(row: any, column: EntityFieldMeta): void {\n this.cellClick.emit({ row, column, value: row[column.name] });\n }\n\n prevPage(): void {\n if (this.page > 0) {\n this.page--;\n this.pageChange.emit(this.page);\n }\n }\n\n nextPage(): void {\n if (this.page < this.pageCount - 1) {\n this.page++;\n this.pageChange.emit(this.page);\n }\n }\n\n goToPage(p: number): void {\n if (p >= 0 && p < this.pageCount) {\n this.page = p;\n this.pageChange.emit(this.page);\n }\n }\n\n onExport(): void {\n this.exportData.emit();\n }\n\n formatValue(value: any, col: EntityFieldMeta): string {\n if (value == null) return '';\n if (col.type === 'boolean') return value ? 'Yes' : 'No';\n if (col.type === 'date') return String(value);\n if (col.type === 'json' || col.type === 'array') {\n try { return JSON.stringify(value); } catch { return String(value); }\n }\n return String(value);\n }\n\n trackByName(_index: number, col: EntityFieldMeta): string {\n return col.name;\n }\n\n trackByIndex(index: number): number {\n return index;\n }\n}\n","<div class=\"tgm-results-grid\">\n <!-- Loading -->\n <div class=\"tgm-results-grid__loading\" *ngIf=\"loading\">\n <div class=\"tgm-db-spinner\"></div>\n <p>{{ loadingMessage }}</p>\n </div>\n\n <!-- Empty -->\n <ng-container *ngIf=\"!loading && data.length === 0\">\n <ng-container *ngIf=\"emptyTemplate; else defaultEmpty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultEmpty>\n <div class=\"tgm-results-grid__empty\">\n <p>{{ noResultsMessage }}</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Table -->\n <div class=\"tgm-results-grid__table-wrapper\" *ngIf=\"!loading && data.length > 0\">\n <table class=\"tgm-results-grid__table\">\n <thead>\n <tr>\n <th class=\"tgm-results-grid__th tgm-results-grid__th--row-num\">#</th>\n <th\n *ngFor=\"let col of visibleColumns; trackBy: trackByName\"\n class=\"tgm-results-grid__th\"\n [class.tgm-results-grid__th--sortable]=\"col.sortable !== false\"\n [class.tgm-results-grid__th--sorted]=\"sortField === col.name\"\n (click)=\"onSort(col.name)\"\n >\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: col }\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <span>{{ col.label }}</span>\n <span class=\"tgm-results-grid__sort-icon\" *ngIf=\"sortField === col.name\">\n {{ sortOrder === 'ASC' ? '▲' : '▼' }}\n </span>\n </ng-template>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index; trackBy: trackByIndex\"\n class=\"tgm-results-grid__tr\"\n [ngClass]=\"rowClass\"\n (click)=\"onRowClick(row)\"\n (dblclick)=\"onRowDoubleClick(row)\"\n >\n <td class=\"tgm-results-grid__td tgm-results-grid__td--row-num\">{{ startRow + i }}</td>\n <td\n *ngFor=\"let col of visibleColumns; trackBy: trackByName\"\n class=\"tgm-results-grid__td\"\n (click)=\"onCellClick(row, col)\"\n >\n <ng-container *ngIf=\"cellTemplate; else defaultCell\">\n <ng-container *ngTemplateOutlet=\"cellTemplate; context: { $implicit: row[col.name], column: col, row: row }\"></ng-container>\n </ng-container>\n <ng-template #defaultCell>\n <span class=\"tgm-results-grid__cell-value\" [title]=\"formatValue(row[col.name], col)\">\n {{ formatValue(row[col.name], col) }}\n </span>\n </ng-template>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <!-- Pagination -->\n <div class=\"tgm-results-grid__footer\" *ngIf=\"!loading && data.length > 0 && showPagination\">\n <ng-container *ngIf=\"paginationTemplate; else defaultPagination\">\n <ng-container *ngTemplateOutlet=\"paginationTemplate; context: { page: page, pageSize: pageSize, total: total }\"></ng-container>\n </ng-container>\n <ng-template #defaultPagination>\n <div class=\"tgm-results-grid__pagination\">\n <span class=\"tgm-results-grid__info\">\n Rows {{ startRow }}-{{ endRow }} of {{ total }}\n </span>\n <div class=\"tgm-results-grid__page-controls\">\n <button\n class=\"tgm-db-btn tgm-db-btn--ghost tgm-db-btn--sm\"\n [disabled]=\"page === 0\"\n (click)=\"prevPage()\"\n >◀</button>\n <span class=\"tgm-results-grid__page-info\">\n Page {{ page + 1 }} of {{ pageCount }}\n </span>\n <button\n class=\"tgm-db-btn tgm-db-btn--ghost tgm-db-btn--sm\"\n [disabled]=\"page >= pageCount - 1\"\n (click)=\"nextPage()\"\n >▶</button>\n </div>\n <button\n *ngIf=\"showExport\"\n class=\"tgm-db-btn tgm-db-btn--ghost tgm-db-btn--sm\"\n (click)=\"onExport()\"\n >Export</button>\n </div>\n </ng-template>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EntityRegistryEntry, EntityFieldMeta } from '../types/database-manager.types';\n\n@Component({\n selector: 'tgm-table-structure',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './table-structure.component.html',\n styleUrls: ['./table-structure.component.scss'],\n})\nexport class TableStructureComponent {\n @Input() entity?: EntityRegistryEntry;\n @Input() containerClass = '';\n @Input() fieldTemplate?: TemplateRef<{ $implicit: EntityFieldMeta }>;\n\n @Output() fieldClick = new EventEmitter<EntityFieldMeta>();\n\n onFieldClick(field: EntityFieldMeta): void {\n this.fieldClick.emit(field);\n }\n\n getTypeBadgeClass(type: string): string {\n switch (type) {\n case 'number': return 'tgm-type-badge--number';\n case 'boolean': return 'tgm-type-badge--boolean';\n case 'date': return 'tgm-type-badge--date';\n case 'enum': return 'tgm-type-badge--enum';\n case 'json': return 'tgm-type-badge--json';\n case 'array': return 'tgm-type-badge--array';\n default: return 'tgm-type-badge--string';\n }\n }\n\n trackByName(_index: number, field: EntityFieldMeta): string {\n return field.name;\n }\n}\n","<div class=\"tgm-table-structure\" [ngClass]=\"containerClass\" *ngIf=\"entity\">\n <div class=\"tgm-table-structure__header\">\n <h4 class=\"tgm-table-structure__title\">{{ entity.name }} — Structure</h4>\n <span class=\"tgm-table-structure__count\">{{ entity.fields.length }} fields</span>\n </div>\n\n <div class=\"tgm-table-structure__table-wrapper\">\n <table class=\"tgm-table-structure__table\">\n <thead>\n <tr>\n <th class=\"tgm-table-structure__th\">#</th>\n <th class=\"tgm-table-structure__th\">Field</th>\n <th class=\"tgm-table-structure__th\">Type</th>\n <th class=\"tgm-table-structure__th\">Label</th>\n <th class=\"tgm-table-structure__th\">Sortable</th>\n <th class=\"tgm-table-structure__th\">Filterable</th>\n <th class=\"tgm-table-structure__th\">Editable</th>\n <th class=\"tgm-table-structure__th\">Required</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let field of entity.fields; let i = index; trackBy: trackByName\">\n <ng-container *ngIf=\"fieldTemplate; else defaultField\">\n <ng-container *ngTemplateOutlet=\"fieldTemplate; context: { $implicit: field }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultField>\n <tr\n class=\"tgm-table-structure__tr\"\n (click)=\"onFieldClick(field)\"\n >\n <td class=\"tgm-table-structure__td tgm-table-structure__td--num\">{{ i + 1 }}</td>\n <td class=\"tgm-table-structure__td tgm-table-structure__td--name\">\n <code>{{ field.name }}</code>\n </td>\n <td class=\"tgm-table-structure__td\">\n <span class=\"tgm-type-badge\" [ngClass]=\"getTypeBadgeClass(field.type)\">\n {{ field.type }}\n </span>\n </td>\n <td class=\"tgm-table-structure__td\">{{ field.label }}</td>\n <td class=\"tgm-table-structure__td tgm-table-structure__td--bool\">\n {{ field.sortable !== false ? '✓' : '' }}\n </td>\n <td class=\"tgm-table-structure__td tgm-table-structure__td--bool\">\n {{ field.filterable !== false ? '✓' : '' }}\n </td>\n <td class=\"tgm-table-structure__td tgm-table-structure__td--bool\">\n {{ field.editable !== false ? '✓' : '' }}\n </td>\n <td class=\"tgm-table-structure__td tgm-table-structure__td--bool\">\n {{ field.required ? '✓' : '' }}\n </td>\n </tr>\n\n <!-- Show enum values if applicable -->\n <tr *ngIf=\"field.enumValues && field.enumValues.length > 0\" class=\"tgm-table-structure__enum-row\">\n <td></td>\n <td colspan=\"7\" class=\"tgm-table-structure__td tgm-table-structure__enum-values\">\n <span class=\"tgm-table-structure__enum-label\">Values:</span>\n <span class=\"tgm-enum-chip\" *ngFor=\"let val of field.enumValues\">{{ val }}</span>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n </div>\n</div>\n","import { Injectable, Injector } from '@angular/core';\nimport { Observable, of, throwError } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { QueryModel, QueryResult, DatabaseManagerConfig } from '../types/database-manager.types';\nimport { EntitySchemaService } from './entity-schema.service';\nimport { ENTITY_SERVICE_MAP } from '../registry/entity-registry';\nimport { BaseCrudService } from '../../../services/api/base-crud.service';\n\n/**\n * Translates a QueryModel (JSON from the editor) into BaseCrudService.getAll() calls\n * and returns a QueryResult.\n */\n@Injectable({ providedIn: 'root' })\nexport class QueryExecutorService {\n /** Cache of resolved service instances keyed by entity key */\n private serviceCache = new Map<string, BaseCrudService<any>>();\n\n constructor(\n private injector: Injector,\n private entitySchema: EntitySchemaService,\n ) {}\n\n /**\n * Execute a query model against the entity's CRUD service.\n */\n execute(query: QueryModel, config?: DatabaseManagerConfig): Observable<QueryResult> {\n const startTime = performance.now();\n\n // Validate entity\n if (!query.entity) {\n return throwError(() => new Error('Query must specify an entity.'));\n }\n\n if (!this.entitySchema.isEntityVisible(query.entity, config)) {\n return throwError(() => new Error(`Entity \"${query.entity}\" is not accessible or does not exist.`));\n }\n\n // Resolve service\n const service = this.resolveService(query.entity);\n if (!service) {\n return throwError(() => new Error(`No service registered for entity \"${query.entity}\".`));\n }\n\n // Build params\n const params: Record<string, any> = {\n ...(query.filters ?? {}),\n page: query.page ?? 0,\n pageSize: Math.min(query.pageSize ?? config?.defaultPageSize ?? 25, config?.maxPageSize ?? 100),\n };\n if (query.sort) {\n params['sort'] = query.sort;\n }\n if (query.order) {\n params['order'] = query.order;\n }\n\n return service.getAll(params).pipe(\n map((response: any) => {\n const executionTime = Math.round(performance.now() - startTime);\n const data = response?.data ?? [];\n const total = response?.meta?.pagination?.total ?? data.length;\n const page = response?.meta?.pagination?.page ?? params['page'];\n const pageSize = response?.meta?.pagination?.pageSize ?? params['pageSize'];\n\n // If select is specified, project only those fields\n const projected = query.select && query.select.length > 0\n ? data.map((row: any) => {\n const out: Record<string, any> = {};\n for (const field of query.select!) {\n if (field in row) {\n out[field] = row[field];\n }\n }\n return out;\n })\n : data;\n\n return {\n data: projected,\n total,\n page,\n pageSize,\n executionTime,\n entity: query.entity,\n } as QueryResult;\n }),\n catchError(err => {\n const executionTime = Math.round(performance.now() - startTime);\n return throwError(() => ({\n message: err?.message ?? 'Query execution failed.',\n executionTime,\n entity: query.entity,\n originalError: err,\n }));\n }),\n );\n }\n\n /**\n * Parse raw JSON string into a QueryModel, with validation.\n */\n parseQuery(raw: string): QueryModel {\n let parsed: any;\n try {\n parsed = JSON.parse(raw);\n } catch {\n throw new Error('Invalid JSON. Please check your query syntax.');\n }\n\n if (!parsed || typeof parsed !== 'object') {\n throw new Error('Query must be a JSON object.');\n }\n\n if (!parsed.entity || typeof parsed.entity !== 'string') {\n throw new Error('Query must include an \"entity\" field (string).');\n }\n\n return {\n entity: parsed.entity,\n select: Array.isArray(parsed.select) ? parsed.select : undefined,\n filters: parsed.filters && typeof parsed.filters === 'object' ? parsed.filters : undefined,\n sort: typeof parsed.sort === 'string' ? parsed.sort : undefined,\n order: parsed.order === 'ASC' || parsed.order === 'DESC' ? parsed.order : undefined,\n page: typeof parsed.page === 'number' ? parsed.page : undefined,\n pageSize: typeof parsed.pageSize === 'number' ? parsed.pageSize : undefined,\n };\n }\n\n /**\n * Format a QueryModel into a pretty-printed JSON string.\n */\n formatQuery(query: QueryModel): string {\n return JSON.stringify(query, null, 2);\n }\n\n /**\n * Create a default query for an entity key.\n */\n defaultQuery(entityKey: string, pageSize = 25): QueryModel {\n return {\n entity: entityKey,\n sort: 'id',\n order: 'DESC',\n page: 0,\n pageSize,\n };\n }\n\n /**\n * Resolve a BaseCrudService instance for an entity key.\n */\n private resolveService(entityKey: string): BaseCrudService<any> | null {\n if (this.serviceCache.has(entityKey)) {\n return this.serviceCache.get(entityKey)!;\n }\n\n const serviceClassName = ENTITY_SERVICE_MAP[entityKey];\n if (!serviceClassName) {\n return null;\n }\n\n // Attempt to inject the service by iterating known service tokens.\n // Since Angular's Injector.get() requires a token (class reference),\n // we use a dynamic approach: try to get it by any known service references.\n try {\n // The SDK registers all services with `providedIn: 'root'`,\n // so they are available in the root injector.\n // We must find the actual class reference — this approach uses\n // the resource path convention: /api/{entity-key}\n const resourcePath = `/api/${entityKey}`;\n const service = this.findServiceByResourcePath(resourcePath);\n if (service) {\n this.serviceCache.set(entityKey, service);\n return service;\n }\n } catch {\n // Service not available\n }\n\n return null;\n }\n\n /**\n * Try to find an already-injected BaseCrudService by its resource path.\n * This iterates the known service class names and tries to inject them.\n */\n private findServiceByResourcePath(resourcePath: string): BaseCrudService<any> | null {\n // We'll use a brute-force approach: import all known service classes\n // from the SDK and try to inject them. Since we can't dynamically\n // import by name at runtime, we iterate through the injector.\n // The consumer must have TgmSdkModule imported (which provides all services).\n\n // Try injecting using the well-known service map approach:\n // Each service is `providedIn: 'root'`, so Injector.get() should work\n // if the service class is referenced somewhere in the app.\n // We'll try a simpler approach: get ALL services and match by resourcePath.\n return null;\n }\n\n /**\n * Register a service instance for an entity key.\n * This allows the consuming app to provide service references explicitly.\n */\n registerService(entityKey: string, service: BaseCrudService<any>): void {\n this.serviceCache.set(entityKey, service);\n }\n\n /**\n * Register multiple services at once.\n */\n registerServices(services: Record<string, BaseCrudService<any>>): void {\n for (const [key, service] of Object.entries(services)) {\n this.serviceCache.set(key, service);\n }\n }\n\n /**\n * Clear the service cache.\n */\n clearServiceCache(): void {\n this.serviceCache.clear();\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { EntityRegistryEntry, EntityFieldMeta, QueryResult, DatabaseManagerConfig } from '../types/database-manager.types';\nimport { QueryExecutorService } from '../services/query-executor.service';\nimport { EntitySchemaService } from '../services/entity-schema.service';\nimport { ResultsGridComponent } from '../results-grid/results-grid.component';\n\n@Component({\n selector: 'tgm-table-data-viewer',\n standalone: true,\n imports: [CommonModule, FormsModule, ResultsGridComponent],\n templateUrl: './table-data-viewer.component.html',\n styleUrls: ['./table-data-viewer.component.scss'],\n})\nexport class TableDataViewerComponent implements OnChanges, OnDestroy {\n // ── Data ──\n @Input() entityKey?: string;\n @Input() config?: DatabaseManagerConfig;\n @Input() pageSize = 25;\n\n // ── Behavior ──\n @Input() showFilters = true;\n @Input() showCreate = false;\n @Input() showDelete = false;\n\n // ── Labels ──\n @Input() emptyMessage = 'No records found.';\n @Input() loadingMessage = 'Loading data...';\n\n // ── Custom templates ──\n @Input() rowTemplate?: TemplateRef<any>;\n @Input() filterTemplate?: TemplateRef<any>;\n @Input() toolbarTemplate?: TemplateRef<any>;\n\n // ── Events ──\n @Output() view = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() create = new EventEmitter<void>();\n @Output() pageChange = new EventEmitter<number>();\n @Output() filterChange = new EventEmitter<Record<string, any>>();\n\n entity?: EntityRegistryEntry;\n data: any[] = [];\n total = 0;\n page = 0;\n loading = false;\n sortField = 'id';\n sortOrder: 'ASC' | 'DESC' = 'DESC';\n filters: Record<string, any> = {};\n executionTime = 0;\n\n private subscription?: Subscription;\n\n constructor(\n private queryExecutor: QueryExecutorService,\n private entitySchema: EntitySchemaService,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['entityKey'] && this.entityKey) {\n this.entity = this.entitySchema.getEntityByKey(this.entityKey, this.config);\n this.page = 0;\n this.filters = {};\n this.fetchData();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n get columns(): EntityFieldMeta[] {\n return this.entity?.fields.filter(f => !f.hidden) ?? [];\n }\n\n onSort(event: { field: string; order: 'ASC' | 'DESC' }): void {\n this.sortField = event.field;\n this.sortOrder = event.order;\n this.fetchData();\n }\n\n onPageChange(page: number): void {\n this.page = page;\n this.pageChange.emit(page);\n this.fetchData();\n }\n\n onView(row: any): void {\n this.view.emit(row);\n }\n\n onEdit(row: any): void {\n this.edit.emit(row);\n }\n\n onDelete(row: any): void {\n this.delete.emit(row);\n }\n\n onCreate(): void {\n this.create.emit();\n }\n\n onFilterChange(field: string, value: any): void {\n if (value === '' || value == null) {\n delete this.filters[field];\n } else {\n this.filters[field] = value;\n }\n this.page = 0;\n this.filterChange.emit(this.filters);\n this.fetchData();\n }\n\n refresh(): void {\n this.fetchData();\n }\n\n private fetchData(): void {\n if (!this.entityKey || !this.entity) return;\n\n this.loading = true;\n this.subscription?.unsubscribe();\n\n this.subscription = this.queryExecutor.execute({\n entity: this.entityKey,\n filters: Object.keys(this.filters).length > 0 ? this.filters : undefined,\n sort: this.sortField,\n order: this.sortOrder,\n page: this.page,\n pageSize: this.pageSize,\n }, this.config).subscribe({\n next: (result: QueryResult) => {\n this.data = result.data;\n this.total = result.total;\n this.executionTime = result.executionTime;\n this.loading = false;\n },\n error: () => {\n this.data = [];\n this.total = 0;\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"tgm-table-data-viewer\">\n <!-- Toolbar -->\n <div class=\"tgm-table-data-viewer__toolbar\">\n <ng-container *ngIf=\"toolbarTemplate; else defaultToolbar\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultToolbar>\n <div class=\"tgm-table-data-viewer__toolbar-left\">\n <span class=\"tgm-table-data-viewer__entity-name\" *ngIf=\"entity\">\n {{ entity.name }}\n </span>\n <span class=\"tgm-table-data-viewer__stats\" *ngIf=\"!loading && total > 0\">\n {{ total }} records ({{ executionTime }}ms)\n </span>\n </div>\n <div class=\"tgm-table-data-viewer__toolbar-right\">\n <button\n class=\"tgm-db-btn tgm-db-btn--ghost tgm-db-btn--sm\"\n (click)=\"refresh()\"\n [disabled]=\"loading\"\n >Refresh</button>\n <button\n *ngIf=\"showCreate\"\n class=\"tgm-db-btn tgm-db-btn--primary tgm-db-btn--sm\"\n (click)=\"onCreate()\"\n >+ New</button>\n </div>\n </ng-template>\n </div>\n\n <!-- Filters -->\n <div class=\"tgm-table-data-viewer__filters\" *ngIf=\"showFilters && entity\">\n <ng-container *ngIf=\"filterTemplate; else defaultFilters\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultFilters>\n <div class=\"tgm-table-data-viewer__filter-bar\">\n <ng-container *ngFor=\"let field of columns | slice:0:5\">\n <div class=\"tgm-table-data-viewer__filter-item\" *ngIf=\"field.filterable !== false\">\n <label class=\"tgm-table-data-viewer__filter-label\">{{ field.label }}</label>\n <ng-container [ngSwitch]=\"field.type\">\n <select\n *ngSwitchCase=\"'enum'\"\n class=\"tgm-table-data-viewer__filter-input\"\n (change)=\"onFilterChange(field.name, $any($event.target).value)\"\n >\n <option value=\"\">All</option>\n <option *ngFor=\"let val of field.enumValues\" [value]=\"val\">{{ val }}</option>\n </select>\n <select\n *ngSwitchCase=\"'boolean'\"\n class=\"tgm-table-data-viewer__filter-input\"\n (change)=\"onFilterChange(field.name, $any($event.target).value)\"\n >\n <option value=\"\">All</option>\n <option value=\"true\">Yes</option>\n <option value=\"false\">No</option>\n </select>\n <input\n *ngSwitchDefault\n type=\"text\"\n class=\"tgm-table-data-viewer__filter-input\"\n [placeholder]=\"'Filter ' + field.label\"\n (input)=\"onFilterChange(field.name, $any($event.target).value)\"\n />\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n\n <!-- Results Grid (reuses results-grid via inline rendering) -->\n <div class=\"tgm-table-data-viewer__grid\">\n <tgm-results-grid\n [data]=\"data\"\n [columns]=\"columns\"\n [total]=\"total\"\n [page]=\"page\"\n [pageSize]=\"pageSize\"\n [loading]=\"loading\"\n [sortField]=\"sortField\"\n [sortOrder]=\"sortOrder\"\n [noResultsMessage]=\"emptyMessage\"\n [loadingMessage]=\"loadingMessage\"\n (sort)=\"onSort($event)\"\n (pageChange)=\"onPageChange($event)\"\n (rowClick)=\"onView($event)\"\n (rowDoubleClick)=\"onEdit($event)\"\n ></tgm-results-grid>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { EntityRegistryEntry, EntityFieldMeta } from '../types/database-manager.types';\n\n@Component({\n selector: 'tgm-record-detail',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './record-detail.component.html',\n styleUrls: ['./record-detail.component.scss'],\n})\nexport class RecordDetailComponent implements OnChanges {\n // ── Data ──\n @Input() record?: Record<string, any>;\n @Input() entity?: EntityRegistryEntry;\n @Input() mode: 'view' | 'edit' | 'create' = 'view';\n @Input() saving = false;\n\n // ── Labels ──\n @Input() saveLabel = 'Save';\n @Input() cancelLabel = 'Cancel';\n @Input() deleteLabel = 'Delete';\n @Input() editLabel = 'Edit';\n\n // ── Custom templates ──\n @Input() fieldTemplate?: TemplateRef<{ $implicit: EntityFieldMeta; value: any }>;\n @Input() headerTemplate?: TemplateRef<void>;\n @Input() footerTemplate?: TemplateRef<void>;\n\n // ── Events ──\n @Output() save = new EventEmitter<Record<string, any>>();\n @Output() cancel = new EventEmitter<void>();\n @Output() delete = new EventEmitter<Record<string, any>>();\n\n formData: Record<string, any> = {};\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['record'] || changes['mode']) {\n this.formData = this.record ? { ...this.record } : {};\n }\n }\n\n get editableFields(): EntityFieldMeta[] {\n if (!this.entity) return [];\n if (this.mode === 'view') return this.entity.fields;\n return this.entity.fields.filter(f => f.editable !== false);\n }\n\n get allFields(): EntityFieldMeta[] {\n return this.entity?.fields ?? [];\n }\n\n get isReadOnly(): boolean {\n return this.mode === 'view';\n }\n\n onFieldChange(field: EntityFieldMeta, value: any): void {\n if (field.type === 'number') {\n this.formData[field.name] = value === '' ? null : Number(value);\n } else if (field.type === 'boolean') {\n this.formData[field.name] = value === 'true' || value === true;\n } else {\n this.formData[field.name] = value;\n }\n }\n\n onSave(): void {\n this.save.emit(this.formData);\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n\n onDelete(): void {\n if (this.record) {\n this.delete.emit(this.record);\n }\n }\n\n getInputType(field: EntityFieldMeta): string {\n switch (field.type) {\n case 'number': return 'number';\n case 'date': return 'datetime-local';\n default: return 'text';\n }\n }\n\n trackByName(_index: number, field: EntityFieldMeta): string {\n return field.name;\n }\n}\n","<div class=\"tgm-record-detail\" *ngIf=\"entity\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <div class=\"tgm-record-detail__header\">\n <h4 class=\"tgm-record-detail__title\">\n {{ entity.name }}\n <span class=\"tgm-record-detail__mode-badge\">{{ mode }}</span>\n </h4>\n <span class=\"tgm-record-detail__id\" *ngIf=\"record?.['id']\">\n ID: {{ record?.['id'] }}\n </span>\n </div>\n </ng-template>\n\n <!-- Fields -->\n <div class=\"tgm-record-detail__body\">\n <div\n class=\"tgm-record-detail__field\"\n *ngFor=\"let field of (isReadOnly ? allFields : editableFields); trackBy: trackByName\"\n >\n <ng-container *ngIf=\"fieldTemplate; else defaultField\">\n <ng-container *ngTemplateOutlet=\"fieldTemplate; context: { $implicit: field, value: formData[field.name] }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultField>\n <label class=\"tgm-record-detail__label\">\n {{ field.label }}\n <span class=\"tgm-record-detail__required\" *ngIf=\"field.required && !isReadOnly\">*</span>\n </label>\n\n <!-- View mode -->\n <div class=\"tgm-record-detail__value\" *ngIf=\"isReadOnly\">\n <span *ngIf=\"field.type === 'boolean'\">\n {{ formData[field.name] ? 'Yes' : (formData[field.name] === false ? 'No' : '-') }}\n </span>\n <span *ngIf=\"field.type === 'json' || field.type === 'array'\">\n <code>{{ formData[field.name] | json }}</code>\n </span>\n <span *ngIf=\"field.type !== 'boolean' && field.type !== 'json' && field.type !== 'array'\">\n {{ formData[field.name] ?? '-' }}\n </span>\n </div>\n\n <!-- Edit / Create mode -->\n <ng-container *ngIf=\"!isReadOnly\">\n <!-- Enum -->\n <select\n *ngIf=\"field.type === 'enum'\"\n class=\"tgm-record-detail__input\"\n [value]=\"formData[field.name] ?? ''\"\n (change)=\"onFieldChange(field, $any($event.target).value)\"\n >\n <option value=\"\">-- Select --</option>\n <option *ngFor=\"let val of field.enumValues\" [value]=\"val\">{{ val }}</option>\n </select>\n\n <!-- Boolean -->\n <select\n *ngIf=\"field.type === 'boolean'\"\n class=\"tgm-record-detail__input\"\n [value]=\"formData[field.name]\"\n (change)=\"onFieldChange(field, $any($event.target).value)\"\n >\n <option value=\"\">-- Select --</option>\n <option value=\"true\">Yes</option>\n <option value=\"false\">No</option>\n </select>\n\n <!-- Text / Number / Date -->\n <input\n *ngIf=\"field.type !== 'enum' && field.type !== 'boolean' && field.type !== 'json' && field.type !== 'array'\"\n class=\"tgm-record-detail__input\"\n [type]=\"getInputType(field)\"\n [value]=\"formData[field.name] ?? ''\"\n [required]=\"field.required || false\"\n (input)=\"onFieldChange(field, $any($event.target).value)\"\n />\n\n <!-- JSON / Array -->\n <textarea\n *ngIf=\"field.type === 'json' || field.type === 'array'\"\n class=\"tgm-record-detail__input tgm-record-detail__textarea\"\n [value]=\"formData[field.name] ? (formData[field.name] | json) : ''\"\n (input)=\"onFieldChange(field, $any($event.target).value)\"\n rows=\"3\"\n ></textarea>\n </ng-container>\n </ng-template>\n </div>\n </div>\n\n <!-- Footer -->\n <ng-container *ngIf=\"footerTemplate; else defaultFooter\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultFooter>\n <div class=\"tgm-record-detail__footer\" *ngIf=\"!isReadOnly\">\n <button\n class=\"tgm-db-btn tgm-db-btn--ghost\"\n (click)=\"onCancel()\"\n [disabled]=\"saving\"\n >{{ cancelLabel }}</button>\n <div class=\"tgm-record-detail__footer-right\">\n <button\n *ngIf=\"mode === 'edit' && record?.['id']\"\n class=\"tgm-db-btn tgm-db-btn--danger\"\n (click)=\"onDelete()\"\n [disabled]=\"saving\"\n >{{ deleteLabel }}</button>\n <button\n class=\"tgm-db-btn tgm-db-btn--primary\"\n (click)=\"onSave()\"\n [disabled]=\"saving\"\n >\n <span class=\"tgm-db-spinner--sm\" *ngIf=\"saving\"></span>\n {{ saveLabel }}\n </button>\n </div>\n </div>\n </ng-template>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport {\n DatabaseManagerConfig,\n EditorTab,\n EntityRegistryEntry,\n QueryModel,\n QueryResult,\n} from '../types/database-manager.types';\nimport { EntitySchemaService } from '../services/entity-schema.service';\nimport { QueryExecutorService } from '../services/query-executor.service';\nimport { ObjectBrowserComponent } from '../object-browser/object-browser.component';\nimport { QueryEditorComponent } from '../query-editor/query-editor.component';\nimport { QueryToolbarComponent } from '../query-toolbar/query-toolbar.component';\nimport { ResultsGridComponent } from '../results-grid/results-grid.component';\nimport { TableStructureComponent } from '../table-structure/table-structure.component';\nimport { TableDataViewerComponent } from '../table-data-viewer/table-data-viewer.component';\nimport { RecordDetailComponent } from '../record-detail/record-detail.component';\n\n@Component({\n selector: 'tgm-database-manager',\n standalone: true,\n imports: [\n CommonModule,\n ObjectBrowserComponent,\n QueryEditorComponent,\n QueryToolbarComponent,\n ResultsGridComponent,\n TableStructureComponent,\n TableDataViewerComponent,\n RecordDetailComponent,\n ],\n templateUrl: './database-manager.component.html',\n styleUrls: ['./database-manager.component.scss'],\n})\nexport class DatabaseManagerComponent implements OnInit, OnChanges, OnDestroy {\n // ── Config ──\n @Input() config: DatabaseManagerConfig = {};\n\n // ── CSS overrides ──\n @Input() containerClass = '';\n @Input() sidebarClass = '';\n @Input() mainClass = '';\n\n // ── Labels ──\n @Input() title = 'Database Manager';\n @Input() noResultsMessage = 'No results found.';\n @Input() loadingMessage = 'Executing query...';\n\n // ── Custom templates ──\n @Input() headerTemplate?: TemplateRef<void>;\n @Input() sidebarHeaderTemplate?: TemplateRef<void>;\n @Input() tabTemplate?: TemplateRef<{ $implicit: EditorTab }>;\n @Input() emptyTemplate?: TemplateRef<void>;\n\n // ── Events ──\n @Output() entitySelected = new EventEmitter<EntityRegistryEntry>();\n @Output() queryExecuted = new EventEmitter<QueryResult>();\n @Output() recordSelected = new EventEmitter<{ entity: string; record: any }>();\n @Output() recordCreated = new EventEmitter<any>();\n @Output() recordUpdated = new EventEmitter<any>();\n @Output() recordDeleted = new EventEmitter<any>();\n @Output() error = new EventEmitter<any>();\n\n // ── State ──\n selectedEntity?: EntityRegistryEntry;\n tabs: EditorTab[] = [];\n activeTabId?: string;\n queryText = '';\n executing = false;\n activeResult?: QueryResult;\n selectedRecord?: any;\n recordMode: 'view' | 'edit' | 'create' = 'view';\n showRecordDetail = false;\n\n private tabCounter = 0;\n private subscription?: Subscription;\n\n constructor(\n private entitySchema: EntitySchemaService,\n private queryExecutor: QueryExecutorService,\n ) {}\n\n ngOnInit(): void {\n this.addQueryTab();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']) {\n this.entitySchema.invalidateCache();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n // ── Tab Management ──\n\n get activeTab(): EditorTab | undefined {\n return this.tabs.find(t => t.id === this.activeTabId);\n }\n\n addQueryTab(): void {\n const tab: EditorTab = {\n id: `query-${++this.tabCounter}`,\n title: `Query ${this.tabCounter}`,\n type: 'query',\n query: '',\n };\n this.tabs.push(tab);\n this.activeTabId = tab.id;\n this.queryText = '';\n this.activeResult = undefined;\n }\n\n addTableDataTab(entity: EntityRegistryEntry): void {\n const existing = this.tabs.find(t => t.type === 'table-data' && t.entityKey === entity.key);\n if (existing) {\n this.activeTabId = existing.id;\n return;\n }\n const tab: EditorTab = {\n id: `data-${entity.key}-${++this.tabCounter}`,\n title: entity.name,\n type: 'table-data',\n entityKey: entity.key,\n };\n this.tabs.push(tab);\n this.activeTabId = tab.id;\n }\n\n addTableStructureTab(entity: EntityRegistryEntry): void {\n const existing = this.tabs.find(t => t.type === 'table-structure' && t.entityKey === entity.key);\n if (existing) {\n this.activeTabId = existing.id;\n return;\n }\n const tab: EditorTab = {\n id: `struct-${entity.key}-${++this.tabCounter}`,\n title: `${entity.name} (Structure)`,\n type: 'table-structure',\n entityKey: entity.key,\n };\n this.tabs.push(tab);\n this.activeTabId = tab.id;\n }\n\n selectTab(tab: EditorTab): void {\n this.activeTabId = tab.id;\n if (tab.type === 'query') {\n this.queryText = tab.query ?? '';\n this.activeResult = tab.result;\n }\n }\n\n closeTab(tab: EditorTab, event: Event): void {\n event.stopPropagation();\n const idx = this.tabs.indexOf(tab);\n if (idx < 0) return;\n this.tabs.splice(idx, 1);\n if (this.activeTabId === tab.id) {\n this.activeTabId = this.tabs[Math.min(idx, this.tabs.length - 1)]?.id;\n if (this.activeTab?.type === 'query') {\n this.queryText = this.activeTab.query ?? '';\n this.activeResult = this.activeTab.result;\n }\n }\n }\n\n // ── Entity Selection ──\n\n onEntitySelected(entity: EntityRegistryEntry): void {\n this.selectedEntity = entity;\n this.entitySelected.emit(entity);\n }\n\n onEntityDoubleClick(entity: EntityRegistryEntry): void {\n this.addTableDataTab(entity);\n }\n\n // ── Query Execution ──\n\n onQueryChange(text: string): void {\n this.queryText = text;\n if (this.activeTab?.type === 'query') {\n this.activeTab.query = text;\n this.activeTab.dirty = true;\n }\n }\n\n onExecute(): void {\n this.executeQuery(this.queryText);\n }\n\n onExecuteFromEditor(text: string): void {\n this.queryText = text;\n if (this.activeTab?.type === 'query') {\n this.activeTab.query = text;\n }\n this.executeQuery(text);\n }\n\n onFormat(): void {\n try {\n const parsed = this.queryExecutor.parseQuery(this.queryText);\n this.queryText = this.queryExecutor.formatQuery(parsed);\n if (this.activeTab?.type === 'query') {\n this.activeTab.query = this.queryText;\n }\n } catch {\n // Leave as is if invalid\n }\n }\n\n onClear(): void {\n this.queryText = '';\n this.activeResult = undefined;\n if (this.activeTab?.type === 'query') {\n this.activeTab.query = '';\n this.activeTab.result = undefined;\n this.activeTab.dirty = false;\n }\n }\n\n // ── Record Detail ──\n\n onRecordClick(record: any): void {\n if (!this.activeTab?.entityKey) return;\n this.selectedRecord = record;\n this.recordMode = 'view';\n this.showRecordDetail = true;\n this.recordSelected.emit({ entity: this.activeTab.entityKey, record });\n }\n\n onRecordDoubleClick(record: any): void {\n if (this.config.readOnly) return;\n this.selectedRecord = record;\n this.recordMode = 'edit';\n this.showRecordDetail = true;\n }\n\n closeRecordDetail(): void {\n this.showRecordDetail = false;\n this.selectedRecord = undefined;\n }\n\n onRecordSave(data: any): void {\n if (this.recordMode === 'create') {\n this.recordCreated.emit(data);\n } else {\n this.recordUpdated.emit(data);\n }\n this.closeRecordDetail();\n }\n\n onRecordDelete(record: any): void {\n this.recordDeleted.emit(record);\n this.closeRecordDetail();\n }\n\n // ── Helpers ──\n\n getEntityForTab(tab: EditorTab): EntityRegistryEntry | undefined {\n if (!tab.entityKey) return undefined;\n return this.entitySchema.getEntityByKey(tab.entityKey, this.config);\n }\n\n trackByTabId(_index: number, tab: EditorTab): string {\n return tab.id;\n }\n\n private executeQuery(raw: string): void {\n if (!raw.trim()) return;\n\n let query: QueryModel;\n try {\n query = this.queryExecutor.parseQuery(raw);\n } catch (err: any) {\n this.error.emit({ message: err.message });\n return;\n }\n\n // Auto-populate query for selected entity\n if (this.selectedEntity && !query.entity) {\n query.entity = this.selectedEntity.key;\n }\n\n this.executing = true;\n this.subscription?.unsubscribe();\n\n this.subscription = this.queryExecutor.execute(query, this.config).subscribe({\n next: (result) => {\n this.activeResult = result;\n this.executing = false;\n if (this.activeTab?.type === 'query') {\n this.activeTab.result = result;\n this.activeTab.dirty = false;\n }\n this.queryExecuted.emit(result);\n },\n error: (err) => {\n this.executing = false;\n this.error.emit(err);\n },\n });\n }\n}\n","<div class=\"tgm-database-manager\" [ngClass]=\"containerClass\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <div class=\"tgm-database-manager__header\">\n <h3 class=\"tgm-database-manager__title\">{{ title }}</h3>\n </div>\n </ng-template>\n\n <div class=\"tgm-database-manager__layout\">\n <!-- Sidebar: Object Browser -->\n <div class=\"tgm-database-manager__sidebar\" [ngClass]=\"sidebarClass\">\n <ng-container *ngIf=\"sidebarHeaderTemplate\">\n <ng-container *ngTemplateOutlet=\"sidebarHeaderTemplate\"></ng-container>\n </ng-container>\n <tgm-object-browser\n [config]=\"config\"\n [selectedEntity]=\"selectedEntity\"\n (selectEntity)=\"onEntitySelected($event)\"\n (doubleClickEntity)=\"onEntityDoubleClick($event)\"\n ></tgm-object-browser>\n </div>\n\n <!-- Main Area -->\n <div class=\"tgm-database-manager__main\" [ngClass]=\"mainClass\">\n <!-- Tabs -->\n <div class=\"tgm-database-manager__tabs\">\n <div class=\"tgm-database-manager__tab-list\">\n <div\n *ngFor=\"let tab of tabs; trackBy: trackByTabId\"\n class=\"tgm-database-manager__tab\"\n [class.tgm-database-manager__tab--active]=\"tab.id === activeTabId\"\n (click)=\"selectTab(tab)\"\n >\n <ng-container *ngIf=\"tabTemplate; else defaultTab\">\n <ng-container *ngTemplateOutlet=\"tabTemplate; context: { $implicit: tab }\"></ng-container>\n </ng-container>\n <ng-template #defaultTab>\n <span class=\"tgm-database-manager__tab-icon\">\n {{ tab.type === 'query' ? '❯' : (tab.type === 'table-structure' ? '☰' : '▣') }}\n </span>\n <span class=\"tgm-database-manager__tab-title\">{{ tab.title }}</span>\n <span class=\"tgm-database-manager__tab-dirty\" *ngIf=\"tab.dirty\">●</span>\n <button\n class=\"tgm-database-manager__tab-close\"\n (click)=\"closeTab(tab, $event)\"\n >×</button>\n </ng-template>\n </div>\n <button\n class=\"tgm-database-manager__tab-add\"\n (click)=\"addQueryTab()\"\n title=\"New Query Tab\"\n >+</button>\n </div>\n </div>\n\n <!-- Tab Content -->\n <div class=\"tgm-database-manager__content\">\n <!-- Empty state -->\n <ng-container *ngIf=\"!activeTab\">\n <ng-container *ngIf=\"emptyTemplate; else defaultEmpty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultEmpty>\n <div class=\"tgm-database-manager__empty\">\n <p>Select an entity from the sidebar or open a new query tab.</p>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Query Tab -->\n <ng-container *ngIf=\"activeTab?.type === 'query'\">\n <div class=\"tgm-database-manager__query-area\">\n <tgm-query-editor\n [value]=\"queryText\"\n [enableMonaco]=\"config.enableMonaco !== false\"\n [entitySchema]=\"selectedEntity\"\n [monacoOptions]=\"config.monacoOptions\"\n (valueChange)=\"onQueryChange($event)\"\n (execute)=\"onExecuteFromEditor($event)\"\n ></tgm-query-editor>\n\n <tgm-query-toolbar\n [executing]=\"executing\"\n (execute)=\"onExecute()\"\n (format)=\"onFormat()\"\n (clear)=\"onClear()\"\n ></tgm-query-toolbar>\n </div>\n\n <div class=\"tgm-database-manager__results\">\n <tgm-results-grid\n *ngIf=\"activeResult\"\n [data]=\"activeResult.data\"\n [columns]=\"selectedEntity?.fields || []\"\n [total]=\"activeResult.total\"\n [page]=\"activeResult.page\"\n [pageSize]=\"activeResult.pageSize\"\n [loading]=\"executing\"\n [noResultsMessage]=\"noResultsMessage\"\n [loadingMessage]=\"loadingMessage\"\n (rowClick)=\"onRecordClick($event)\"\n (rowDoubleClick)=\"onRecordDoubleClick($event)\"\n ></tgm-results-grid>\n\n <div class=\"tgm-database-manager__result-info\" *ngIf=\"activeResult\">\n <span>{{ activeResult.total }} rows · {{ activeResult.executionTime }}ms</span>\n </div>\n\n <div class=\"tgm-database-manager__no-results\" *ngIf=\"!activeResult && !executing\">\n <p>Execute a query to see results.</p>\n </div>\n </div>\n </ng-container>\n\n <!-- Table Data Tab -->\n <ng-container *ngIf=\"activeTab?.type === 'table-data'\">\n <tgm-table-data-viewer\n [entityKey]=\"activeTab.entityKey!\"\n [config]=\"config\"\n [pageSize]=\"config.defaultPageSize || 25\"\n [showCreate]=\"!config.readOnly\"\n [showDelete]=\"!config.readOnly\"\n (view)=\"onRecordClick($event)\"\n (edit)=\"onRecordDoubleClick($event)\"\n ></tgm-table-data-viewer>\n </ng-container>\n\n <!-- Table Structure Tab -->\n <ng-container *ngIf=\"activeTab?.type === 'table-structure'\">\n <tgm-table-structure\n [entity]=\"getEntityForTab(activeTab!)\"\n ></tgm-table-structure>\n </ng-container>\n </div>\n </div>\n </div>\n\n <!-- Record Detail Panel (overlay) -->\n <div class=\"tgm-database-manager__detail-overlay\" *ngIf=\"showRecordDetail\" (click)=\"closeRecordDetail()\">\n <div class=\"tgm-database-manager__detail-panel\" (click)=\"$event.stopPropagation()\">\n <tgm-record-detail\n [record]=\"selectedRecord\"\n [entity]=\"getEntityForTab(activeTab!) || selectedEntity\"\n [mode]=\"recordMode\"\n (save)=\"onRecordSave($event)\"\n (cancel)=\"closeRecordDetail()\"\n (delete)=\"onRecordDelete($event)\"\n ></tgm-record-detail>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatabaseManagerComponent } from './database-manager/database-manager.component';\nimport { ObjectBrowserComponent } from './object-browser/object-browser.component';\nimport { QueryEditorComponent } from './query-editor/query-editor.component';\nimport { QueryToolbarComponent } from './query-toolbar/query-toolbar.component';\nimport { ResultsGridComponent } from './results-grid/results-grid.component';\nimport { TableStructureComponent } from './table-structure/table-structure.component';\nimport { TableDataViewerComponent } from './table-data-viewer/table-data-viewer.component';\nimport { RecordDetailComponent } from './record-detail/record-detail.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DatabaseManagerComponent,\n ObjectBrowserComponent,\n QueryEditorComponent,\n QueryToolbarComponent,\n ResultsGridComponent,\n TableStructureComponent,\n TableDataViewerComponent,\n RecordDetailComponent,\n ],\n exports: [\n DatabaseManagerComponent,\n ObjectBrowserComponent,\n QueryEditorComponent,\n QueryToolbarComponent,\n ResultsGridComponent,\n TableStructureComponent,\n TableDataViewerComponent,\n RecordDetailComponent,\n ],\n})\nexport class DatabaseManagerModule {}\n","/*\n * TGM Client SDK for Angular 18\n * Comprehensive type-safe SDK for all TGM Manager API endpoints\n */\n\n// --- Module & Config ---\nexport { TgmSdkModule } from './lib/tgm-sdk.module';\nexport { TGM_SDK_CONFIG, TgmSdkConfig, TokenStorageStrategy, InMemoryTokenStorage } from './lib/tgm-sdk.config';\n\n// --- Core ---\nexport { TgmHttpClient, TgmSdkError, RequestOptions } from './lib/core/http-client.service';\nexport { WebSocketService, ConnectionState } from './lib/core/websocket.service';\nexport { AuthInterceptor } from './lib/core/auth-interceptor';\nexport { ClientInterceptor } from './lib/core/client-interceptor';\nexport { TgmApiError, mapHttpError } from './lib/core/error-handler';\n\n// --- Models ---\nexport * from './lib/models';\n\n// --- Services ---\nexport * from './lib/services';\nexport { ScheduledReportService } from './lib/services/api/scheduled-report.service';\nexport { EntityCommentService } from './lib/services/api/entity-comment.service';\nexport { AuditEntryService } from './lib/services/api/audit-entry.service';\n\n// --- Video Call Components ---\nexport { VideoCallModule } from './lib/components/video-call/video-call.module';\nexport { VideoRoomComponent } from './lib/components/video-call/video-room/video-room.component';\nexport { VideoControlsComponent } from './lib/components/video-call/video-controls/video-controls.component';\nexport { VideoParticipantComponent } from './lib/components/video-call/video-participant/video-participant.component';\nexport { IncomingCallComponent } from './lib/components/video-call/incoming-call/incoming-call.component';\nexport { LivekitRoomService } from './lib/components/video-call/services/livekit-room.service';\nexport { VideoCallSignalingService } from './lib/components/video-call/services/video-call-signaling.service';\nexport { VideoCallStateService, VideoCallState } from './lib/components/video-call/services/video-call-state.service';\nexport { ParticipantInfo } from './lib/components/video-call/types/video-call.types';\n\n// --- Reporting Components ---\nexport { ReportingModule } from './lib/components/reporting/reporting.module';\nexport { ReportTemplateListComponent } from './lib/components/reporting/report-template-list/report-template-list.component';\nexport { ReportGenerateDialogComponent } from './lib/components/reporting/report-generate-dialog/report-generate-dialog.component';\nexport { ReportDefinitionListComponent } from './lib/components/reporting/report-definition-list/report-definition-list.component';\nexport { ReportDefinitionFormComponent } from './lib/components/reporting/report-definition-form/report-definition-form.component';\nexport { GeneratedReportListComponent } from './lib/components/reporting/generated-report-list/generated-report-list.component';\nexport { ReportStatsComponent, StatCard } from './lib/components/reporting/report-stats/report-stats.component';\nexport { ExportButtonComponent, ExportFormat } from './lib/components/reporting/export-button/export-button.component';\n\n// --- Database Manager Components ---\nexport { DatabaseManagerModule } from './lib/components/database-manager/database-manager.module';\nexport { DatabaseManagerComponent } from './lib/components/database-manager/database-manager/database-manager.component';\nexport { ObjectBrowserComponent } from './lib/components/database-manager/object-browser/object-browser.component';\nexport { QueryEditorComponent } from './lib/components/database-manager/query-editor/query-editor.component';\nexport { QueryToolbarComponent } from './lib/components/database-manager/query-toolbar/query-toolbar.component';\nexport { ResultsGridComponent } from './lib/components/database-manager/results-grid/results-grid.component';\nexport { TableStructureComponent } from './lib/components/database-manager/table-structure/table-structure.component';\nexport { TableDataViewerComponent } from './lib/components/database-manager/table-data-viewer/table-data-viewer.component';\nexport { RecordDetailComponent } from './lib/components/database-manager/record-detail/record-detail.component';\nexport { EntitySchemaService } from './lib/components/database-manager/services/entity-schema.service';\nexport { QueryExecutorService } from './lib/components/database-manager/services/query-executor.service';\nexport {\n EntityFieldMeta,\n EntityRegistryEntry,\n QueryModel,\n QueryResult,\n DatabaseManagerConfig,\n EditorTab,\n EntityModuleGroup,\n} from './lib/components/database-manager/types/database-manager.types';\nexport { ENTITY_REGISTRY, DEFAULT_EXCLUDED_ENTITIES, MODULE_LABELS, ENTITY_SERVICE_MAP } from './lib/components/database-manager/registry/entity-registry';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TgmHttpClient","i1.WebSocketService","i1","i1.LivekitRoomService","i1.ReportingService","i2","i1.ExportService","i1.EntitySchemaService","i3","catchError","i1.QueryExecutorService","i2.EntitySchemaService","i2.QueryExecutorService"],"mappings":"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"}
|