using Microsoft.EntityFrameworkCore; using Stylist.Data.Models; using Stylist.Data.Models.DTOs; using Stylist.Data.Models.DTOs.Service; using Stylist.Domain.Mapping; using Stylist.Domain.Repositories.Interfaces; namespace Stylist.Domain.Repositories.Implementations { public class ServiceRepository : IServiceRepository { public ServiceRepository(StylistContext context) { _context = context; } private readonly StylistContext _context; public async Task<IEnumerable<ServiceSalonPageDto>> GetRecommendedServicesBySalonAsync(int salonId) { var services = await _context .Services .AsNoTracking() .Where(s => s.SalonId == salonId) .Select(ServiceMapping.MapToServiceSalonPageDto) .Take(3) .ToListAsync(); return services; } public async Task<IEnumerable<ServiceChoosePageDto>> GetServicesBySalonAsync(int salonId) { var salonServices = await _context .Services .AsNoTracking() .Include(s => s.ServiceMainServices) .ThenInclude(sms => sms.MainService) .Where(s => s.SalonId == salonId) .Select(ServiceMapping.MapToServiceChoosePageDto) .ToListAsync(); return salonServices; } } }