import 'package:superport/data/models/maintenance_stats_dto.dart';

/// 유지보수 통계 데이터 리포지토리
/// 기존 maintenance API를 활용하여 대시보드 통계를 계산합니다.
abstract class MaintenanceStatsRepository {
  /// 유지보수 대시보드 통계 조회
  /// 60일내, 30일내, 7일내, 만료된 계약 등의 통계를 계산합니다.
  Future<MaintenanceStatsDto> getMaintenanceStats();
  
  /// 특정 기간별 만료 예정 계약 통계
  /// [days] 일 내 만료 예정 계약 수를 반환합니다.
  Future<int> getExpiringContractsCount({required int days});
  
  /// 계약 타입별 통계
  /// WARRANTY, CONTRACT, INSPECTION 별 계약 수를 반환합니다.
  Future<Map<String, int>> getContractsByType();
  
  /// 만료된 계약 통계
  /// 현재 기준으로 만료된 계약 수를 반환합니다.
  Future<int> getExpiredContractsCount();
  
  /// 전체 활성 계약 수
  /// 삭제되지 않은 활성 계약의 총 개수를 반환합니다.
  Future<int> getActiveContractsCount();
}