import 'package:dartz/dartz.dart';
import 'package:superport/core/errors/failures.dart';
import 'package:superport/data/models/lookups/lookup_data.dart';

/// Lookups Repository 인터페이스 (Domain Layer)
abstract class LookupsRepository {
  /// 전체 조회 데이터 가져오기
  Future<Either<Failure, LookupData>> getAllLookups();
  
  /// 타입별 조회 데이터 가져오기
  Future<Either<Failure, LookupData>> getLookupsByType(String type);
  
  /// 캐시된 데이터 조회 (로컬 캐시 우선)
  Either<Failure, LookupData> getCachedLookups();
  
  /// 캐시 새로고침
  Future<Either<Failure, bool>> refreshCache();
  
  /// 초기화 상태 확인
  bool isInitialized();
}