using Demo.Domain.Models;
using Demo.Data.LocalData; // Добавьте пространство имен
using System.Collections.Generic;
using System.Linq;

namespace Demo.Data.Repository
{
    public class GroupRepositoryImpl
    {
        private List<Demo.Domain.Models.Group> _groups;

        public GroupRepositoryImpl()
        {
            // Инициализируем список групп данными из LocalStaticData
            _groups = LocalStaticData.Groups.Select(g => new Demo.Domain.Models.Group
            {
                Id = g.Id,
                Name = g.Name
            }).ToList();
        }

        public List<Demo.Domain.Models.Group> GetAllGroups()
        {
            return _groups;
        }

        public Group GetGroupById(int id)
        {
            return _groups.FirstOrDefault(g => g.Id == id);
        }

        public void AddGroup(Group group)
        {
            _groups.Add(group);
        }

        public bool UpdateGroup(Group group) // Метод возвращает bool
        {
            var existingGroup = _groups.FirstOrDefault(g => g.Id == group.Id);
            if (existingGroup != null)
            {
                existingGroup.Name = group.Name; // Обновите остальные поля, если необходимо
                return true; // Успешное обновление
            }
            return false; // Группа не найдена
        }

        public bool RemoveGroupById(int groupId) // Метод возвращает bool
        {
            var group = _groups.FirstOrDefault(g => g.Id == groupId);
            if (group != null)
            {
                _groups.Remove(group);
                return true; // Успешное удаление
            }
            return false; // Группа не найдена
        }

        public void DisplayGroups()
        {
            foreach (var group in _groups)
            {
                Console.WriteLine($"ID: {group.Id}, Name: {group.Name}");
            }
        }
    }
}
