Data Model
The foundational entities and history model behind Mali Beta 0.1.
Data Model
De fundamentele entiteiten en het historiemodel achter Mali Beta 0.1.
Core entities
| Entity | Purpose |
|---|---|
| Tenant | Fleet/company boundary for multi-tenant isolation |
| Vehicle | Permanent asset identity |
| VehicleStatusEvent | Dated lifecycle, availability and commercial status change |
| Customer | Lease customer / company or person |
| Driver | Authorized driver linked to customer and licence compliance |
| Contract | Lease agreement linked to vehicle/customer/driver |
| ComplianceRecord | Insurance, inspection, road tax and related validity |
| MaintenanceEvent | Service, repair, tire, battery and other lifecycle work |
| MileageEvent | Dated odometer reading with source |
| Document | Stored source file plus extracted/confirmed metadata |
| LedgerEvent | Normalized audit/event stream |
Status dimensions
Do not collapse every condition into one vehicle-status dropdown. Mali separates ownership/lifecycle, operational availability and commercial disposition.
Historical reconstruction
Every material state change carries an effective date and audit timestamp. This is what will allow an “as of 31 December 2026” fleet position without reconstructing old spreadsheets.
Document data
The original file stays immutable in S3. Extracted values are separate metadata and become authoritative only after confirmation. The record stores document type, source, linked entity, effective/expiry dates, extraction confidence and confirming user.
Phase 2 financial fields
Vehicle acquisition records should already store depreciation start month, useful life, residual value and method so commercial and fiscal depreciation can be introduced later without re-migrating the fleet.
Kernentiteiten
| Entiteit | Doel |
|---|---|
| Tenant | Bedrijfsgrens voor multi-tenant isolatie |
| Vehicle | Permanente asset-identiteit |
| VehicleStatusEvent | Gedateerde wijziging in lifecycle, beschikbaarheid en commerciële status |
| Customer | Leaseklant / bedrijf of persoon |
| Driver | Bevoegde bestuurder met rijbewijscompliance |
| Contract | Leaseovereenkomst gekoppeld aan voertuig/klant/bestuurder |
| ComplianceRecord | Verzekering, keuring, motorrijtuigenbelasting en geldigheid |
| MaintenanceEvent | Service, reparatie, band, accu en ander lifecyclewerk |
| MileageEvent | Gedateerde kilometerstand met bron |
| Document | Brondocument plus uitgelezen/bevestigde metadata |
| LedgerEvent | Genormaliseerde audit-/eventstroom |
Statusdimensies
Niet alle omstandigheden horen in één voertuigstatusdropdown. Mali scheidt eigendom/lifecycle, operationele beschikbaarheid en commerciële bestemming.
Historische reconstructie
Elke materiële statuswijziging krijgt een ingangsdatum en audittijdstip. Daardoor kan Mali later een vlootpositie “per 31 december 2026” reconstrueren.
Documentdata
Het originele bestand blijft ongewijzigd in S3. Uitgelezen waarden zijn aparte metadata en worden pas leidend na bevestiging. Het record bewaart documenttype, bron, gekoppelde entiteit, ingangs-/vervaldatum, extractiezekerheid en bevestigende gebruiker.
Financiële velden Fase 2
Aankooprecords bewaren al de startmaand van afschrijving, gebruiksduur, restwaarde en methode zodat commerciële en fiscale afschrijving later zonder nieuwe migratie kan worden toegevoegd.