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 espacos para desenvolvimento local.
    /// </summary>
    public class MockSpaceService : ISpaceService
    {
        private readonly List<Space> _spaces = new List<Space>
        {
            new Space
            {
                Id = "space-1",
                Name = "Salão Primavera",
                Description = "Salão amplo para eventos.",
                OwnerId = "owner-1",
                Status = SpaceStatus.Published,
                Capacity = 100,
                MaxRecommendedGuests = 120,
                MaxGuestsStanding = 150,
                MaxGuestsSeated = 80,
                Address = "Av. Exemplo, 100"
            },
            new Space
            {
                Id = "space-2",
                Name = "Hotel Centro",
                Description = "Espaço para eventos corporativos.",
                OwnerId = "owner-1",
                Status = SpaceStatus.Published,
                Capacity = 50,
                MaxRecommendedGuests = 50,
                MaxGuestsStanding = 60,
                MaxGuestsSeated = 40,
                Address = "Rua Central, 200"
            },
            new Space
            {
                Id = "space-3",
                Name = "Fazenda Eventos",
                Description = "Ambiente rústico para casamentos e festas.",
                OwnerId = "owner-2",
                Status = SpaceStatus.Published,
                Capacity = 150,
                MaxRecommendedGuests = 150,
                MaxGuestsStanding = 200,
                MaxGuestsSeated = 120,
                Address = "Estrada do Campo, km 5"
            }
        };

        public IReadOnlyList<Space> GetAll() => _spaces;

        public Space GetById(string id) => _spaces.Find(s => s.Id == id);
    }
}
