Data Model
Praktiline skeemidokument sinu Event Mobility süsteemi jaoks. Hõlmab runtime config’i, põhitabeleid ja operatsioonikihte.
1. Ülevaade
Süsteem on event-centric. Peamine “sisuobjekt” on üritus ja selle event_data snapshotid.
2. Runtime config (config.js)
Docs kasutab neid runtime objekte otse config.js-st.
| Key | Selgitus | Runtime value |
|---|
3. events
| Field | Purpose |
|---|---|
| id | Ürituse primaarvõti |
| name | Ürituse nimi |
| event_date | Kuvamiseks mõeldud kuupäev |
| description | Avalik/üldine kirjeldus |
| sort_order | Kataloogi järjestus |
| published | Kas event on avalik |
4. event_data
Kõige olulisem sisucontainer.
| Field | Purpose |
|---|---|
| event_id | Viide events tabelile |
| data | Admini mustand. mapItems on alates 18.10.2026 ridadest ehitatud koopia (tabel event_map_items, trigger event_map_items_sync_json); kui kirjutaja saadab mapItems JSON-ina, sünkroonib trigger aa_event_data_map_json selle ridadesse |
| data_rev | Tööruumi lukk muude andmete salvestusel (rev+1 tingimusega eq(rev)) |
| published_data | Avalik snapshot |
| updated_at | Viimane muutmine |
| updated_by | Kes viimati muutis |
5. profiles
| Field | Purpose |
|---|---|
| id | Seos auth useriga |
| name | Kasutajanimi UI-s |
| Login / kontakt | |
| role | super_admin / admin / partner |
6. admin_invites
| Field | Purpose |
|---|---|
| Kutsutava email | |
| role | Antav roll |
| invite_code | Link/QR token |
| status | pending / accepted / revoked |
| accepted_at | Liitumise aeg |
7. event_access
| Field | Purpose |
|---|---|
| event_id | Üritus |
| user_id | Kasutaja |
| can_edit | Edit õigus sellele eventile |
7b. organizations, org_members, event_members, rollid
Õigusi kontrollib ainult has_org_permission(org, õigus) ja
has_event_permission(üritus, õigus). UI küsib rpc('my_event_permissions', {p_event}).
Vanad funktsioonid (has_event_access, can_manage_event, is_event_admin …)
= vana loogika VÕI event.edit uues mudelis.
| Tabel / väli | Purpose |
|---|---|
| organizations.name / plan / event_quota / status | Rentnik; pakett pilot/professional/enterprise; kvoot (-1 = piiramatu); active/inactive. clients on ajalooline vaade selle peale. |
| org_members.role | org_owner · org_admin (kõik ürituse õigused kõigil org-i üritustel) · org_member (näeb org-i) |
| event_members.role | event_manager (endine omanik) · event_editor (endine event_access) · operator (staap: staatus, chat, intsidendid) · viewer |
| *.source | legacy = sünkroonitud vanast mudelist (owner_user_id, event_access, profiles.client_id); direct = antud otse |
| roles / permissions / role_permissions | Kataloog, muudetakse ainult migratsiooniga. Rolli saab anda ainult see, kellel on kõik selle rolli õigused. |
8. regulator_assignments
| Field | Purpose |
|---|---|
| event_id | Üritus |
| position_code | R-kood / positsioon |
| segment_code | Lõik |
| regulator_name | Töötaja nimi |
| phone | Telefon |
| planned_start / planned_end | Planeeritud tööaeg |
| role / priority / notes | Täiendav haldusinfo |
| status | planned / departed jne |
| locked_device_id | Seadme sidumine aktiivse tööga |
| is_adhoc | Kas loodi käsitsi ad-hocina |
9. regulator_work_sessions
| Field | Purpose |
|---|---|
| event_id | Üritus |
| assignment_id | Viide määrangule |
| position_code | Positsioon |
| worker_id | Töötaja seos |
| regulator_name / phone | Snapshot töö alustamisel |
| arrived_at / departed_at | Tegelik töö algus/lõpp |
| worked_minutes | Kinnitatud tööaeg |
| status | open / closed |
| closed_reason | manual / auto / regulator |
| closed_by | Kes sulges |
| arrived_late / late_minutes | Hilinemise loogika |
10. regulator_devices
| Field | Purpose |
|---|---|
| event_id | Üritus |
| position_code | Positsioon |
| device_id | Client-side local device token |
| active | Kas seadmega on aktiivne töö |
11. regulator_feedback
| Field | Purpose |
|---|---|
| event_id | Üritus |
| code | Positsioon |
| incident | Intsidenti kirjeldus |
| incident_at | Aeg |
| photo_url | Foto |
| gps_lat / gps_lng | Asukoht |
12. chat_messages
| Field | Purpose |
|---|---|
| event_id | Üritus |
| channel | general / R204 / traffic |
| sender_code | STAAP / TRAFFIC / worker code |
| sender_name | Kuvatav nimi |
| message | Sõnumi sisu |
| msg_type | chat / incident |
| photo_url | Valikuline pilt |
| created_at | Aeg |
13. segments
| Field | Purpose |
|---|---|
| event_id | Üritus |
| name | Lõigu nimi, seotud mapItems segment objektiga |
| status | open / closing / safe / opening |
| updated_by | Kes muutis |
| updated_at | Millal muutis |
14. traffic_access
| Field | Purpose |
|---|---|
| event_id | Üritus |
| code | Pääsukood |
| label | Piirkond või nimetus |
15. tasks
| Field | Purpose |
|---|---|
| event_id | Üritus |
| title | Ülesanne |
| assigned_to | Viide profilele |
| assigned_name | Snapshot nimi |
| due_date | Tähtaeg |
| status | open / in_progress / done |
16. mail_messages
| Field | Purpose |
|---|---|
| from_name / from_email | Saatja |
| subject / body | Küsimuse sisu |
| category | general / mobility / complaint / media |
| status | new / read / answered / closed |
| reply_draft | Staabi mustandvastus |
| answered_at / answered_by | Vastamise auditeerimine |
| received_at | Saabumise aeg |
17. workers
| Field | Purpose |
|---|---|
| event_id | Üritus |
| full_name | Töötaja nimi |
| phone | Telefon |
| id_code | Isikukood |
| id_code_masked | Maskitud variant raporteerimiseks |
18. Kõik tabelid rühmade kaupa (seis 17.10.2026, 86 tabelit)
Jaotised 3–17 kirjeldavad algset mudelit. Alates 30.09 lisandunud tabelid on allpool rühmade kaupa; iga tabel on RLS-iga ja õigused tulevad has_event_permission() või is_super_admin() kaudu. Tokenid ja lingid on alati räsina.
| Rühm | Tabelid |
|---|---|
| Organisatsioonid ja õigused | organizations, org_members, event_members, roles, role_permissions, permissions, profiles, admin_invites, plans, billing_settings, invoices, invoice_counters, platform_settings, audit_logs |
| Üritus ja kaart | events, event_data, event_map_items (kaardiobjektid rida-põhiselt, tõe allikas), event_data_versions (ajalugu ja tagasivõtmine), segments, event_hq_contacts (staabi telefon), event_race_clock, event_sheets (Exceli mallid tagasi) |
| Liikluskorraldus | traffic_plans (etapid, lõigud, ajad, ÜT kirjed), traffic_documents (skeemid, hoidla traffic-docs), traffic_access (pääsukoodid), transport_lines, transport_stops, parking_areas |
| Välitöö | workers, regulator_assignments, regulator_work_sessions (seadme token räsi), regulator_presence_logs, regulator_devices, regulator_feedback, chat_messages, incidents, incident_updates, sms_log |
| Vabatahtlikud, võistlejad, pääsud | mobility_people, mobility_passes (public_token), mobility_zones (alad), operational_points, point_tasks, volunteer_shifts, shift_assignments, scan_checkpoints, scanner_devices, scan_events, event_briefings, briefing_acks, event_feedback, event_flows |
| Playbook ja projekt | event_playbook, event_maturity, project_plans (valdkonnad, ülesanded, riskid, t0_offset), budget_lines, tasks |
| Partnerid | event_partners, partner_links (räsi), partner_posts, partner_post_acks, partner_messages, partner_rfqs, partner_offers, partner_tasks, partner_invoices |
| Ametid ja ühistransport | event_authorities, authority_links (räsi), authority_feedback, pt_changes, pt_stops, pt_routes, pt_sync_log (avalikud andmed), event_permits (Opinfo valmidus) |
| Avalikkus ja tugi | public_chat_sessions, public_chat_messages, mail_messages (event_id, kontaktivorm), support_tickets, support_ticket_notes, help_articles (KKK), system_notices (teadaolevad probleemid), weather_cache, portal_resources (omaniku register), integration_events |
| AI | assistant_conversations, assistant_actions (kinnitusega muudatused), assistant_log (kulu paketi kaupa) |
events (avaldatud, piiratud veerud), event_data.published_data, segments, pt_stops, pt_routes ning avalikud RPC-d (public_transport, public_pt_changes, public_pass, event_segment_shapes). Täpne nimekiri: docs/AUDIT-2026-10-16.md.