TidyLinker.com
TypeScript
Pull Request Opened
PR #81 opened: feat: client saved addresses with settings CRUD and booking integration
Summary
- Adds saved addresses feature: clients can store up to 10 addresses and reuse them when booking cleaners or posting jobs
- Settings page at
/settings/addresseswith full CRUD (add, edit, delete, set default) - Saved addresses appear in the booking dialog and post-job step 3 for quick selection
- SoftDeletes, DB transactions, validation with coordinate pairing, shared types
Key changes
- Model + Migration:
SavedAddresswith SoftDeletes, factory,user_idnot in fillable (always created via relationship) - Controller:
SavedAddressControllerwithDB::transaction()on all mutations, default guard (can't unset default on only address) - Validation:
SavedAddressValidationRulestrait shared between store/update requests,required_withon lat/lng pairing - User model:
savedAddressesForSelection()deduplicates the query used byCleanerPublicProfileControllerandPostJobController - Frontend: Shared
SavedAddressItemtype, batchedsetDatacalls, form dialog reset on close - Routes: 4 new routes under
/settings/addresses, added to settings sidebar nav
Test plan
- 28 feature tests passing (index, store, update, destroy, validation, integration)
- 3 browser tests passing (CRUD flow, default management)
- Smoke test updated to include
/settings/addresses - Manual: verify saved address selection in booking dialog
- Manual: verify saved address selection in post-job step 3
- Manual: verify form dialog resets when closed without submitting
+1382
additions
-10
deletions
21
files changed