update address
This commit is contained in:
59
CITY_WARD_IMPLEMENTATION.md
Normal file
59
CITY_WARD_IMPLEMENTATION.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# City and Ward API Implementation - Complete Guide
|
||||
|
||||
## Files Created ✅
|
||||
|
||||
1. ✅ `lib/features/account/domain/entities/city.dart`
|
||||
2. ✅ `lib/features/account/domain/entities/ward.dart`
|
||||
3. ✅ `lib/features/account/data/models/city_model.dart`
|
||||
4. ✅ `lib/features/account/data/models/ward_model.dart`
|
||||
5. ✅ Updated `lib/core/constants/storage_constants.dart`
|
||||
- Added `cityBox` and `wardBox`
|
||||
- Added `cityModel = 31` and `wardModel = 32`
|
||||
- Shifted all enum IDs by +2
|
||||
|
||||
## Implementation Status
|
||||
|
||||
### Completed:
|
||||
- ✅ Domain entities (City, Ward)
|
||||
- ✅ Hive models with type adapters
|
||||
- ✅ Storage constants updated
|
||||
- ✅ Build runner generated .g.dart files
|
||||
|
||||
### Remaining (Need to implement):
|
||||
|
||||
1. **Remote Datasource** - `lib/features/account/data/datasources/location_remote_datasource.dart`
|
||||
2. **Local Datasource** - `lib/features/account/data/datasources/location_local_datasource.dart`
|
||||
3. **Repository Interface** - `lib/features/account/domain/repositories/location_repository.dart`
|
||||
4. **Repository Implementation** - `lib/features/account/data/repositories/location_repository_impl.dart`
|
||||
5. **Providers** - `lib/features/account/presentation/providers/location_provider.dart`
|
||||
6. **Update AddressFormPage** to use the providers
|
||||
|
||||
## API Endpoints (from docs/auth.sh)
|
||||
|
||||
### Get Cities:
|
||||
```bash
|
||||
POST /api/method/frappe.client.get_list
|
||||
Body: {
|
||||
"doctype": "City",
|
||||
"fields": ["city_name","name","code"],
|
||||
"limit_page_length": 0
|
||||
}
|
||||
```
|
||||
|
||||
### Get Wards (filtered by city):
|
||||
```bash
|
||||
POST /api/method/frappe.client.get_list
|
||||
Body: {
|
||||
"doctype": "Ward",
|
||||
"fields": ["ward_name","name","code"],
|
||||
"filters": {"city": "96"},
|
||||
"limit_page_length": 0
|
||||
}
|
||||
```
|
||||
|
||||
## Offline-First Strategy
|
||||
|
||||
1. **Cities**: Cache in Hive, refresh from API periodically
|
||||
2. **Wards**: Load from API when city selected, cache per city
|
||||
|
||||
Would you like me to generate the remaining implementation files now?
|
||||
Reference in New Issue
Block a user