Ovidiu U
52dc225b3d
feat: add StationResource with poll action and view page
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 14:27:22 +01:00
Ovidiu U
b2cc3ee0ff
feat: add BrentPriceResource with 30-day line chart widget
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 14:23:57 +01:00
Ovidiu U
d936175090
feat: add OilPredictionResource with run-prediction header action
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 14:20:51 +01:00
Ovidiu U
d602c8bde4
feat: add UserResource with is_admin toggle and delete
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 14:17:50 +01:00
Ovidiu U
9998a3e1c8
fix: improve errors_only filter and add view page test
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 14:14:35 +01:00
Ovidiu U
a8fb275793
feat: add ApiLogResource with filters and view page
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 14:09:32 +01:00
Ovidiu U
99b0ce480b
feat: add PollFuelPricesJob queued job
2026-04-04 14:04:45 +01:00
Ovidiu U
cf187f9721
feat: add HasFactory and factories for ApiLog, BrentPrice, PricePrediction
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 13:59:55 +01:00
Ovidiu U
efba3cbfd6
feat: configure admin panel with authGuard and widget setup
2026-04-04 13:57:23 +01:00
Ovidiu U
a0e74f2363
feat: reorganize Filament into multi-panel structure and add is_admin cast
...
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
- Move Filament resources, pages, and widgets into Admin namespace subdirectories
- Remove default panel and login method calls from AdminPanelProvider
- Add is_admin boolean cast to User model
2026-04-04 13:50:49 +01:00
Ovidiu U
d5fb7f85bd
feat: add Filament admin panel with migrations and design spec
...
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
- Add AdminPanelProvider mounting panel at `/admin` with `is_admin` auth guard
- Add `is_admin` boolean column to users table
- Add brent_prices and price_predictions tables with appropriate indexes
- Add comprehensive admin design spec covering resources, dashboard, navigation, and build order
- Configure default panel with amber primary color and standard middleware stack
- Add compiled Filament assets (actions.js, app.css)
2026-04-04 13:40:56 +01:00
Ovidiu U
e532cc1208
feat: add PostcodeService and price validation with DB constraints
...
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
- Add PostcodeService to resolve UK postcodes, outcodes, and place names to coordinates via postcodes.io API with 30-day caching
- Add LocationResult value object for resolved location data
- Add per-fuel-type price validation (80p-1050p range) to FuelPriceService with warning logs for out-of-range prices
- Change price_pence column from unsignedSmallInteger to unsignedMediumInteger in station_prices tables
- Add CHECK constraints (5000-50000 range) on price_pence columns as database-level guard
- Improve error handling in PollFuelPrices command with file/line/trace output
- Add tests for PostcodeService covering full postcodes, outcodes, place names, caching, and error handling
- Add test for price validation range checks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-04 12:40:43 +01:00
Ovidiu U
097f1b0529
apilogs
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
2026-04-04 08:41:21 +01:00
Ovidiu U
ada43d222a
feat: FuelPriceService station upsert with tagging
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 18:53:42 +01:00
Ovidiu U
a83d06d76a
feat: FuelPriceService with OAuth token caching
...
Also extend Pest TestCase to Unit tests and guard MySQL-only migration
DDL (composite PK + PARTITION BY) behind a driver check so in-memory
SQLite tests can run migrations cleanly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 18:52:40 +01:00
Ovidiu U
80a8a9f93b
feat: add StationTaggingService with supermarket detection
2026-04-03 18:49:34 +01:00
Ovidiu U
7f153fb08d
feat: add Station, StationPrice, StationPriceCurrent, StationPriceArchive models and factories
2026-04-03 18:46:53 +01:00
Ovidiu U
7d5b467084
feat: add FuelType backed enum
2026-04-03 18:28:01 +01:00
Ovidiu U
c94c4f7beb
init
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
2026-04-03 16:47:05 +01:00