using Hutopy.Application.Common.Interfaces; using Hutopy.Domain.Entities; namespace Hutopy.Application.FutureCreators.Commands; public record CreateFutureCreatorCommand : IRequest { public required string FirstName { get; init; } public required string LastName { get; init; } public required string EmailAddress { get; init; } public required string PhoneNumber { get; init; } public required string SocialNetworkAccount { get; init; } public required string ReasonToJoin { get; init; } } public class CreateFuturCreatorCommandHandler : IRequestHandler { private readonly IApplicationDbContext _context; public CreateFuturCreatorCommandHandler(IApplicationDbContext context) { _context = context; } public async Task Handle(CreateFutureCreatorCommand request, CancellationToken cancellationToken) { var entity = new FutureCreator { FirstName = request.FirstName, LastName = request.LastName, EmailAddress = request.EmailAddress, PhoneNumber = request.PhoneNumber, SocialNetworkAccount = request.SocialNetworkAccount, ReasonToJoin = request.ReasonToJoin, }; _context.FutureCreators.Add(entity); await _context.SaveChangesAsync(cancellationToken); return entity.Id; } }