using System.Collections.Generic;
using EventsAppQuest.Application.Services;
using EventsAppQuest.Domain.Enums;
using EventsAppQuest.Domain.Models;

namespace EventsAppQuest.Infrastructure.Services
{
    /// <summary>
    /// Implementacao mock do servico de categorias de evento para desenvolvimento local.
    /// </summary>
    public class MockEventCategoryService : IEventCategoryService
    {
        private readonly List<EventCategory> _categories = new List<EventCategory>
        {
            new EventCategory
            {
                Id = "cat-birthday",
                Type = EventCategoryType.Birthday,
                DisplayName = "Aniversários",
                Description = "Festas de aniversário infantil e adulto."
            },
            new EventCategory
            {
                Id = "cat-wedding",
                Type = EventCategoryType.Wedding,
                DisplayName = "Casamentos",
                Description = "Cerimônias e recepções."
            },
            new EventCategory
            {
                Id = "cat-business",
                Type = EventCategoryType.Business,
                DisplayName = "Business",
                Description = "Eventos corporativos, convenções e reuniões."
            }
        };

        public IReadOnlyList<EventCategory> GetAll() => _categories;

        public EventCategory GetById(string id) => _categories.Find(c => c.Id == id);
    }
}
