SoloDB Documentation Version 1.0 Help

Equipment functional design

Purpose and boundary

The Equipment module owns equipment master data, functional modules, equipment/module properties, classifications, responsible users, training requests, reservations, setups, status, issues, ECNs, preventive maintenance, equipment logging, external activity, and monitored processes. It integrates with Room for location and access, Process and Run for execution, Scheduler for coordinated booking, Service for service history, Mailing for notifications, File for attachments, and Solr for search.

Core aggregate

Equipment\Entity\Equipment is the aggregate entry point. Important state includes identity, grade, ownership, location or facility area, category types, active/MES settings, reservation audiences, project/rental/approval flags, training mode, modules, responsible roles, users, requests, reservations, setups, services, maintenance, documents, files, and properties.

Equipment\Entity\Module represents a functional component. One module is the equipment's main module. Modules own operational status records, parameters, assets, facilities, process associations, issues, ECNs, external activities, properties, functions, and their own reservations.

Categories contain types, and types select property definitions. Property values may also be supplied by rooms, zone groups, modules, and module functions. The equipment service collects these sources for forms, filters, and detail views.

Access and training

An equipment-role assignment binds equipment, user, role type, active state, comment, and approval-flow participation. An equipment training request has Open, Granted, or Denied status and contains a per-user approval flow. The resulting equipment-user record has In training, Active, or Inactive status. Room access is checked independently before equipment training or booking.

TrainingOptionEnum distinguishes no training, normal training, and registration without training. ReservationOptionEnum controls which audiences may reserve: active trainees, in-training users, all users, room-trained users, and equipment responsibles.

Reservations and setups

Reservations contain start/end, recurrence, owner, title/description, type, status, equipment, modules, assets, project context, optional run/service/maintenance/scheduler links, and double-reservation metadata. Types cover user, technical, rental, block, setup, and accessory bookings. Creation validates active state, access/training audience, room opening hours, overlaps, setup rules, approval, and permissions.

Setups combine equipment around a main item. They are fixed or dynamic and select no booking, calendar booking, or the scheduler. Date ranges determine whether a setup is active.

Operational records

Status definitions provide a badge and Up/Down/neutral semantic. A new module status closes the previous active record. Issues track active/closed faults with priority or escalation, while ECNs communicate temporary procedural changes. Maintenance schedules generate planned maintenance records and may reserve the equipment. External activity stores work performed in another system. Service associations connect structured service events and reports.

Logging and monitored processes

Equipment logging definitions map file/table cells or external service results to logging parameters. Measurements in runs and monitored processes can select those parameters.

Monitors define a reusable control procedure with steps, variables, requirements, measurements, schedules, files, and generated runs. Requirements can evaluate measurements or required module-status changes; scheduling creates monitor runs without allowing their protected step sequence to be edited as an ordinary run.

Presentation and API surface

HTML routes provide list, detail, edit, training, reservation, module, maintenance, logging, monitor, import/export, and statusmail workflows. JSON controllers support calendars, status updates, request flow, module/monitor editing, logging, and search. Route configuration is split across module/equipment/config/module.config.routes*.php; authorisation is split the same way. Search documents exist for equipment, modules, requests, reservations, monitors, and related records.

Invariants for changes

  • Preserve main-module creation and association for every equipment record.

  • Keep status, issue, ECN, request, reservation, and maintenance history rather than overwriting it.

  • Re-run access, time-window, setup, and audience validation for every reservation mutation.

  • Update search documents and queued indexing when searchable state changes.

  • Register new services, assertions, helpers, controllers, routes, navigation, and search documents in module config.

  • Add or update module tests whenever a public route, option, status transition, or entity relation changes.

19 July 2026