29 lines
1.1 KiB
Plaintext
29 lines
1.1 KiB
Plaintext
# Phase 002: Core Data Model
|
|
|
|
## Goal
|
|
Create the relational model foundation for users, vehicles, fuel entries, maintenance entries, and maintenance schedules.
|
|
|
|
## Work
|
|
- Create `User` with `name` and `email`.
|
|
- Create `Vehicle` with `make`, `model`, `year`, `color`, `vin`, `licence_plate`, `current_odometer`, and `fuel_tank_size`.
|
|
- Create `MaintenanceSchedule` belonging to `Vehicle`.
|
|
- Create `FuelEntry` belonging to `Vehicle` and `User` as `updated_by_user`.
|
|
- Create `MaintenanceEntry` belonging to `Vehicle` and `User` as `updated_by_user`.
|
|
- Add validations for required fields and basic numeric constraints.
|
|
- Add model specs for associations, validations, and simple behavior.
|
|
|
|
## Notes
|
|
- Correct likely typo from design: `licence_place` should probably be `licence_plate`.
|
|
- Correct likely typo from design: `MainetnanceEntry` should be `MaintenanceEntry`.
|
|
|
|
## Deliverables
|
|
- Database migrations.
|
|
- ActiveRecord models.
|
|
- Model specs.
|
|
- Factories.
|
|
|
|
## Acceptance Criteria
|
|
- All model specs pass.
|
|
- Associations match the design.
|
|
- Invalid records are rejected with useful validation errors.
|