Add nightly town sync from ArcGIS API with autocomplete
All checks were successful
linter / quality (pull_request) Successful in 1m21s
security / Dependency Audit (pull_request) Successful in 1m25s
security / Static Analysis (pull_request) Successful in 1m49s
tests / ci (8.4) (pull_request) Successful in 1m23s
tests / ci (8.5) (pull_request) Successful in 1m27s
All checks were successful
linter / quality (pull_request) Successful in 1m21s
security / Dependency Audit (pull_request) Successful in 1m25s
security / Static Analysis (pull_request) Successful in 1m49s
tests / ci (8.4) (pull_request) Successful in 1m23s
tests / ci (8.5) (pull_request) Successful in 1m27s
- Add towns table with town_pid, town_name, state, population, town_class, date_retired - Add AustralianState enum with label and abbreviation helpers - Add Town model with active() and search() scopes - Add SyncTowns job that paginates ArcGIS API and upserts all 1977 towns - Schedule SyncTowns to run nightly at 02:00 - Add /towns/search endpoint returning JSON suggestions filtered by name and state - Add Alpine-powered autocomplete on origin/destination fields in create form - Add state filter dropdown in journeys card header to narrow autocomplete results
This commit is contained in:
43
app/Enums/AustralianState.php
Normal file
43
app/Enums/AustralianState.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum AustralianState: int
|
||||
{
|
||||
case NSW = 1;
|
||||
case VIC = 2;
|
||||
case QLD = 3;
|
||||
case SA = 4;
|
||||
case WA = 5;
|
||||
case TAS = 6;
|
||||
case NT = 7;
|
||||
case ACT = 8;
|
||||
|
||||
public function label(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::NSW => 'New South Wales',
|
||||
self::VIC => 'Victoria',
|
||||
self::QLD => 'Queensland',
|
||||
self::SA => 'South Australia',
|
||||
self::WA => 'Western Australia',
|
||||
self::TAS => 'Tasmania',
|
||||
self::NT => 'Northern Territory',
|
||||
self::ACT => 'Australian Capital Territory',
|
||||
};
|
||||
}
|
||||
|
||||
public function abbreviation(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::NSW => 'NSW',
|
||||
self::VIC => 'VIC',
|
||||
self::QLD => 'QLD',
|
||||
self::SA => 'SA',
|
||||
self::WA => 'WA',
|
||||
self::TAS => 'TAS',
|
||||
self::NT => 'NT',
|
||||
self::ACT => 'ACT',
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user