import '../../data/models/rent_dto.dart';

abstract class RentRepository {
  /// 임대 목록 조회
  Future<RentListResponse> getRents({
    int page = 1,
    int pageSize = 10,
    String? search,
    String? status,
    int? equipmentHistoryId,
  });

  /// 임대 상세 조회
  Future<RentDto> getRent(int id);

  /// 임대 생성
  Future<RentDto> createRent(RentRequestDto request);

  /// 임대 수정
  Future<RentDto> updateRent(int id, RentUpdateRequestDto request);

  /// 임대 삭제
  Future<void> deleteRent(int id);

  /// 진행 중인 임대 목록
  Future<RentListResponse> getActiveRents({
    int page = 1,
    int pageSize = 10,
  });

  /// 연체된 임대 목록
  Future<RentListResponse> getOverdueRents({
    int page = 1,
    int pageSize = 10,
  });

  /// 임대 통계
  Future<Map<String, dynamic>> getRentStats();

  /// 장비 반납 처리
  Future<RentDto> returnRent(int id, String returnDate);
}