using Hutopy.Web.Features.Memberships.Data; namespace Hutopy.Web.Features.Memberships.Handlers; [PublicAPI] public class GetMembershipTierRequest { public Guid CreatorId { get; set; } } [PublicAPI] public record struct TierModel( Guid Id, DateTime CreatedAt, string Name, decimal Price, string CurrencyCode); [PublicAPI] public class GetMembershipTierEndpoint( MembershipDbContext dbDbContext) : Endpoint> { public override void Configure() { Get("/api/membership/tiers"); Options(o => o.WithTags("Memberships")); } public override async Task HandleAsync( CreateMembershipTierRequest req, CancellationToken ct) { var tiers = await dbDbContext .Tiers .Where(tier => tier.CreatorId == req.CreatorId) .Select(tier => new TierModel( tier.Id, tier.CreatedAt, tier.Name, tier.Price, tier.CurrencyCode)) .ToListAsync(ct); await SendOkAsync(tiers, ct); } }