/// Location Repository Interface
///
/// Contract for location (city/ward) data operations.
library;

import 'package:worker/features/account/domain/entities/city.dart';
import 'package:worker/features/account/domain/entities/ward.dart';

/// Location Repository
///
/// Defines methods for accessing city and ward data.
abstract class LocationRepository {
  /// Get all cities (offline-first: cache → API)
  Future<List<City>> getCities({bool forceRefresh = false});

  /// Get wards for a specific city code
  Future<List<Ward>> getWards(String cityCode, {bool forceRefresh = false});

  /// Clear all cached location data
  Future<void> clearCache();
}
