import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart';
import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart';
import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart';
import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart';
import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart';
import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart';
import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart';
import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart';
import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart';
import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart';
import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart';
import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart';
import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart';
import 'package:rasadyar_core/core.dart';

abstract class PoultryScienceRepository {
  Future<HomePoultryScienceModel?> getHomePoultry({required String token, required String type});

  Future<PaginationModel<HatchingModel>?> getHatchingPoultry({
    required String token,
    Map<String, dynamic>? queryParameters,
  });


  Future<void> submitPoultryScienceReport({
    required String token,
    required FormData data,
    ProgressCallback? onSendProgress,
  });


  Future<PaginationModel<HatchingReport>?> getHatchingPoultryReport({
    required String token,
    Map<String, dynamic>? queryParameters,
  });

  Future<PaginationModel<PoultryFarm>?> getPoultryScienceFarmList({
    required String token,
    Map<String, dynamic>? queryParameters,
  });

  Future<ApprovedPrice?> getApprovedPrice({  required String token,
    Map<String, dynamic>? queryParameters,});


  Future<List<AllPoultry>?> getAllPoultry({
    required String token,
    Map<String, dynamic>? queryParameters,
  });


  Future<SellForFreezing?> getSellForFreezing({
    required String token,
    Map<String, dynamic>? queryParameters,
  });


  Future<PoultryExport?> getPoultryExport({
    required String token,
    Map<String, dynamic>? queryParameters,
  });

  Future<List<KillRequestPoultry>?> getUserPoultry({
    required String token,
    Map<String, dynamic>? queryParameters,
  });

  Future<List<PoultryHatching>?> getPoultryHatching({
    required String token,
    Map<String, dynamic>? queryParameters,
  });

  Future<List<KillHousePoultry>?> getKillHouseList({
    required String token,
    Map<String, dynamic>? queryParameters,
  });

  Future<void> submitKillRegistration({
    required String token,
    required KillRegistrationRequest request,
  });

  Future<PaginationModel<PoultryOrder>?> getPoultryOderList({
    required String token,
    Map<String, dynamic>? queryParameters,
  });
  Future<void> deletePoultryOder({
    required String token,
    required String orderId,
  });
}
