svc-check-in¶
NovaTrek Check-In Service | Operations | v1.0.0 | NovaTrek Operations Team
Handles day-of-adventure check-in workflow including wristband assignment,
Swagger UI Download OpenAPI Spec
Integration Context¶
Data Store¶
Overview¶
| Property | Detail |
|---|---|
| Engine | PostgreSQL 15 |
| Schema | checkin |
| Tables | check_ins, gear_verifications, wristband_assignments |
| Estimated Volume | ~5,000 check-ins/day peak season |
| Connection Pool | min 5 / max 20 / idle timeout 10min |
| Backup Strategy | Continuous WAL archiving, daily base backup, 7-day PITR |
Key Features¶
- Indexes on reservation_id and check_in_date
- TTL-based cleanup of stale check-ins (older than 24h)
- Composite unique constraint on (reservation_id, participant_id)
Table Reference¶
check_ins¶
Primary check-in records for each guest arrival
| Column | Type | Constraints |
|---|---|---|
check_in_id | UUID | PK, DEFAULT gen_random_uuid() |
reservation_id | UUID | NOT NULL, FK -> svc-reservations |
participant_id | UUID | NOT NULL |
guest_id | UUID | NOT NULL |
adventure_category | VARCHAR(50) | NOT NULL |
check_in_pattern | SMALLINT | NOT NULL, CHECK (1-3) |
status | VARCHAR(20) | NOT NULL, DEFAULT 'pending' |
checked_in_at | TIMESTAMPTZ | DEFAULT NOW() |
checked_in_by | VARCHAR(100) | NULL (staff ID or 'self') |
created_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
updated_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
Indexes:
idx_checkin_reservationonreservation_ididx_checkin_dateonchecked_in_atidx_checkin_guestonguest_id, checked_in_at DESCuq_checkin_participantonreservation_id, participant_id(UNIQUE)
gear_verifications¶
Gear assignment verification records linked to check-ins
| Column | Type | Constraints |
|---|---|---|
verification_id | UUID | PK |
check_in_id | UUID | NOT NULL, FK -> check_ins |
gear_assignment_id | UUID | NOT NULL |
verified_by | VARCHAR(100) | NOT NULL |
status | VARCHAR(20) | NOT NULL |
notes | TEXT | NULL |
verified_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
Indexes:
idx_gear_ver_checkinoncheck_in_id
wristband_assignments¶
Digital wristband NFC assignments for checked-in guests
| Column | Type | Constraints |
|---|---|---|
assignment_id | UUID | PK |
check_in_id | UUID | NOT NULL, FK -> check_ins |
wristband_nfc_id | VARCHAR(64) | NOT NULL, UNIQUE |
active | BOOLEAN | NOT NULL, DEFAULT TRUE |
assigned_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() |
deactivated_at | TIMESTAMPTZ | NULL |
Indexes:
idx_wristband_nfconwristband_nfc_id(UNIQUE)idx_wristband_checkinoncheck_in_id
Solutions Affecting This Service¶
| Ticket | Solution | Capabilities | Date |
|---|---|---|---|
| NTK-10003 | Support Unregistered Guest Self-Service Check-In | CAP-2.1, CAP-1.1, CAP-1.3 | 2025-02-12 |
| NTK-10002 | Adventure Category Classification for Check-In UI Patterns | CAP-2.1, CAP-1.2 | 2025-02-10 |
| NTK-10005 | Add Wristband RFID Field to Check-In Record | CAP-2.1 | 2025-02-08 |
Endpoints (5 total)¶
GET /check-ins -- List check-ins by reservation¶
POST /check-ins -- Initiate check-in for a participant¶
Begins the check-in process for a reservation participant. Validates that
GET /check-ins/{check_in_id} -- Get check-in details¶
POST /check-ins/{check_in_id}/gear-verification -- Verify gear has been picked up and fitted¶
Records that the participant has received and been fitted with required
POST /check-ins/{check_in_id}/wristband-assignment -- Assign RFID wristband to checked-in participant¶
Assigns a color-coded RFID wristband for tracking and access control
Consuming Applications¶
| Application | Screens Using This Service |
|---|---|
| Operations Dashboard | Check-In Station |
| Adventure App | Self Check-In, Digital Wristband |
Events Published¶
| Event | Channel | Trigger | Consumers |
|---|---|---|---|
checkin.completed | novatrek.operations.checkin.completed | POST /check-ins | svc-analytics, svc-notifications |