using Demo.Data.Repository;
using Demo.Domain.Models;
using System.Collections.Generic;

namespace Demo.Domain.UseCase
{
    public class GroupUseCase
    {
        private readonly GroupRepositoryImpl _groupRepository;

        public GroupUseCase(GroupRepositoryImpl groupRepository)
        {
            _groupRepository = groupRepository;
        }

        public List<Group> GetAllGroups()
        {
            return _groupRepository.GetAllGroups();
        }

        public Group GetGroupById(int id)
        {
            return _groupRepository.GetGroupById(id);
        }

        public void AddGroup(Group group)
        {
            _groupRepository.AddGroup(group);
        }

        public bool UpdateGroup(Group group) // Метод возвращает bool
        {
            var existingGroup = _groupRepository.GetGroupById(group.Id);
            if (existingGroup != null)
            {
                return _groupRepository.UpdateGroup(group); // Обновление через репозиторий
            }
            return false; // Группа не найдена
        }

        public bool RemoveGroupById(int id) // Метод возвращает bool
        {
            var existingGroup = _groupRepository.GetGroupById(id);
            if (existingGroup != null)
            {
                return _groupRepository.RemoveGroupById(id); // Удаление через репозиторий
            }
            return false; // Группа не найдена
        }

        public Group FindGroupById(int id) // Новый метод для поиска группы
        {
            return _groupRepository.GetGroupById(id);
        }
    }
}
