import 'package:injectable/injectable.dart';
import 'package:krow/core/data/models/event/addon_model.dart';
import 'package:krow/core/data/models/event/business_member_model.dart';
import 'package:krow/core/data/models/event/hub_model.dart';
import 'package:krow/core/data/models/event/tag_model.dart';
import 'package:krow/core/data/models/shift/business_skill_model.dart';
import 'package:krow/core/data/models/shift/department_model.dart';
import 'package:krow/features/create_event/data/create_event_api_provider.dart';
import 'package:krow/features/create_event/domain/create_event_repository.dart';

@Singleton(as: CreateEventRepository)
class CreateEventRepositoryImpl extends CreateEventRepository {
  final CreateEventApiProvider _apiProvider;

  CreateEventRepositoryImpl({required CreateEventApiProvider apiProvider})
      : _apiProvider = apiProvider;

  @override
  Future<List<HubModel>> getHubs() async {
    return _apiProvider.getHubs();
  }

  @override
  Future<List<AddonModel>> getAddons() async {
    return _apiProvider.getAddons();
  }

  @override
  Future<List<TagModel>> getTags() async {
    return _apiProvider.getTags();
  }

  @override
  Future<List<BusinessMemberModel>> getContacts() async {
    return _apiProvider.getContacts();
  }

  @override
  Future<List<BusinessSkillModel>> getSkills() {
    return _apiProvider.getSkill();
  }

  @override
  Future<List<DepartmentModel>> getDepartments(String hubId) {
    return _apiProvider.getDepartments(hubId);
  }

}
