using Hims.Shared.Dapper.Attributes;
using Hims.Shared.Library.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

namespace Hims.Shared.EntityModels
{
    /// <summary>
    /// The anc card generation model.
    /// </summary>
    public class ANCCardGenerationModel
    {
        /// <summary>
        /// Gets or sets the anc card generation identifier.
        /// </summary>
        public int? ANCCardGenerationId { get; set; }

        /// <summary>
        /// Gets or sets department
        /// </summary>
        public string? Department { get; set; }
        /// <summary>
        /// Gets or sets anc no.
        /// </summary>
        public string? ANCNo { get; set; }
        /// <summary>
        /// Gets or sets the husband name.
        /// </summary>
        public string? HusbandName { get; set; }

        /// <summary>
        /// Gets or sets the remark.
        /// </summary>
        public string? Remarks { get; set; }
        /// <summary>
        /// Gets or sets the registration date.
        /// </summary>
        public string? RegistrationDate { get; set; }
        /// <summary>
        /// Gets or sets the active.
        /// </summary>
        public bool? Active { get; set; }
        /// <summary>
        /// Gets or sets the provider id.
        /// </summary>
        public int ProviderId { get; set; }
        /// <summary>
        /// Gets or sets the patient Id.
        /// </summary>
        public int PatientId { get; set; }
        /// <summary>
        /// Gets or sets the husband age.
        /// </summary>
        public int? HusbandAge { get; set; }
        /// <summary>
        /// Gets or sets anc no exist.
        /// </summary>
        public string? ANCNoExists { get; set; }
        /// <summary>
        /// Gets or sets appointment Id.
        /// </summary>
        public int? AppointmentId { get; set; }

        public DateTime? AppointmentDate { get; set; }

        public TimeSpan? AppointmentTime { get; set; }

        public string? ConsultantDoctor { get; set; }   

        public bool IsAdmission { get; set; }
        public string? JsonString { get; set; }
        /// <summary>
        /// Gets or sets the encounter type.
        /// </summary>
        public OBEncounterType Type { get; set; }
        /// <summary>
        /// Gets or sets the modified by.
        /// </summary>
        public int? ModifiedBy { get; set; }

        public int? ObEncounterId { get; set; }

        public string? ProviderName { get; set; }
    }


    public class OrderPrescriptions
    {
        public int? AppointmentId { get; set; }

        public string? OrderPrescription { get; set; }

        public DateTime? AppointmentDate { get; set; }
        public TimeSpan? AppointmentTime { get; set; }

        public string? ProviderName { get; set; }

        public string? EncryptedAppointmentId { get; set; }

        public object Labs { get; set; }

        public object Medications { get; set; }
    }
}
