using Baya.Application.Models.Common;
using Baya.Application.Models.Identity;
using Mediator;

namespace Baya.Application.Features.Identity.Commands.CreatePatient;

/// <summary>
/// Registers a care recipient under the signed-in customer. The owning customer is derived from the
/// caller — never from the request body. <c>Gender</c> is required (same-gender matching signal) and
/// <c>InitialMedicalNotes</c> is encrypted at rest.
/// </summary>
public record CreatePatientCommand(
    string DisplayName,
    string FirstName,
    string LastName,
    DateOnly BirthDate,
    string Gender,
    string BloodType,
    string InitialMedicalNotes,
    string Relation = null,
    IReadOnlyList<string> Conditions = null) : IRequest<OperationResult<PatientDto>>;
