Document Type: Technical + Business Integration Specification
Audience: PMS Vendors, Backend Engineers, Product Owners, QA Teams
The LOTS PMS Season Synchronisation module ensures that Season records created in the Vendor system are accurately reflected in the PMS system.
Vendor System (Orders & Seasons)
|
v
+---------------------+
| LOTS Integration API|
+---------------------+
|
v
+---------------------+
| PMS System |
| (Season Database) |
+---------------------+
| Component | Responsibility |
|---|---|
| Vendor Database | Stores season orders and status. |
| LOTS Sync Service | Business logic, filtering, transformation, and orchestration. |
| PMS API | Create and update season records. |
| PMS Sync Log | Audit trail for all sync operations. |
| Term | Description |
|---|---|
| Season | A valid parking subscription period. |
| IU No | Unique Season Identifier (season_no in PMS). |
| Continuous Season | Season that extends from a previous season without gap. |
| Non-Continuous Season | Season that starts without continuity. |
| Complimentary Season | Season granted without charge. |
| PMS | Parking Management System. |
| Vendor System | External system managing orders. |
Only seasons with the following statuses are processed:
A season is classified as non-continuous if:
A season is classified as continuous if:
| Rule | Description |
|---|---|
| Active Carpark | Only seasons belonging to active carparks are processed. |
| Batch Limit | Records are processed in limited batches. |
| Time Constraint | Start date must be ≤ current time. |
| Status Constraint | Season must be active. |
| Scenario | Action |
|---|---|
| PMS season exists | Renew season |
| PMS season does not exist | Create season |
| PMS end date = null | Always renew |
| New end date < PMS end date | Skip renewal |
| Carpark group detected | Skip season |
| Vendor Field | PMS Field |
|---|---|
| IUNo | season_no |
| seasonStartDate | date_from |
| seasonEndDate | date_to |
| buyerName | holder_name |
| vehicleNo | vehicle_no |
| buyerCompany | full_company |
| rateType | rate_type |
| Log Type | Description |
|---|---|
| Create | Season created in PMS. |
| Renew | Season renewed in PMS. |
| Skip | Season ignored due to rules. |
| Error | Failed PMS operation. |
FOR each eligible season:
IF season exists in PMS:
IF shouldUpdate:
renew season
ELSE:
skip
ELSE:
create season
UPDATE vendor sync status
LOG result