Stu Mason
Stu Mason

Activity

StuMason/cleanconnect
TidyLinker.com
TypeScript
Pull Request Merged

PR #81 merged: 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/addresses with 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: SavedAddress with SoftDeletes, factory, user_id not in fillable (always created via relationship)
  • Controller: SavedAddressController with DB::transaction() on all mutations, default guard (can't unset default on only address)
  • Validation: SavedAddressValidationRules trait shared between store/update requests, required_with on lat/lng pairing
  • User model: savedAddressesForSelection() deduplicates the query used by CleanerPublicProfileController and PostJobController
  • Frontend: Shared SavedAddressItem type, batched setData calls, 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