Files
meezi/src/Meezi.API/Services/CafeDiscoverProfileMapping.cs
T

44 lines
1.7 KiB
C#
Raw Normal View History

2026-05-27 21:33:48 +03:30
using Meezi.API.Models.Discover;
using Meezi.Core.Discover;
using Meezi.Infrastructure.Discover;
namespace Meezi.API.Services;
public static class CafeDiscoverProfileMapping
{
public static CafeDiscoverProfileDto ToDto(CafeDiscoverProfile profile) =>
new(
profile.Themes,
profile.Size,
profile.Floors,
profile.Vibes,
profile.Occasions,
profile.SpaceFeatures,
profile.NoiseLevel,
profile.PriceTier);
public static CafeDiscoverProfile FromRequest(UpsertCafeDiscoverProfileRequest request) =>
CafeDiscoverProfileSerializer.Sanitize(new CafeDiscoverProfile
{
Themes = request.Themes?.ToList() ?? [],
Size = request.Size,
Floors = request.Floors,
Vibes = request.Vibes?.ToList() ?? [],
Occasions = request.Occasions?.ToList() ?? [],
SpaceFeatures = request.SpaceFeatures?.ToList() ?? [],
NoiseLevel = request.NoiseLevel,
PriceTier = request.PriceTier
});
public static DiscoverProfileTaxonomyDto Taxonomy() =>
new(
CafeDiscoverProfileKeys.Themes.OrderBy(x => x).ToList(),
CafeDiscoverProfileKeys.Sizes.OrderBy(x => x).ToList(),
CafeDiscoverProfileKeys.Floors.OrderBy(x => x).ToList(),
CafeDiscoverProfileKeys.Vibes.OrderBy(x => x).ToList(),
CafeDiscoverProfileKeys.Occasions.OrderBy(x => x).ToList(),
CafeDiscoverProfileKeys.SpaceFeatures.OrderBy(x => x).ToList(),
CafeDiscoverProfileKeys.NoiseLevels.OrderBy(x => x).ToList(),
CafeDiscoverProfileKeys.PriceTiers.OrderBy(x => x).ToList());
}