#nullable enable
using System;

namespace Hims.Shared.UserModels.Filters
{
    /// <summary>
    /// The patient filter model.
    /// </summary>
    public class OutPatientFilterModel
    {
        /// <summary>
        /// Gets or sets the Provider id.
        /// </summary>
        public int? ProviderId { get; set; }

        /// <summary>
        /// Gets or sets the Provider id.
        /// </summary>
        public string PatientGender { get; set; }

        /// <summary>
        /// Gets or sets the created date.
        /// </summary>
        public string? FromDate { get; set; }

        /// <summary>
        /// Gets or sets the optional text 2.
        /// </summary>
        public string? ToDate { get; set; }

        /// <summary>
        /// Gets or sets the Provider id.
        /// </summary>
        public string? ProviderAge { get; set; }


        /// <summary>
        /// Gets or sets the Provider id.
        /// </summary>
        public string? ProviderName { get; set; }

        /// <summary>
        /// Gets or sets the father or husband.
        /// </summary>
        public string? FatherOrHusband { get; set; }

        /// <summary>
        /// Gets or sets the Provider id.
        /// </summary>
        public int? DepartmentId { get; set; }

        /// <summary>
        /// Gets or sets the Provider id.
        /// </summary>
        public int PatientAge { get; set; }

        /// <summary>
        /// Gets or sets the full name.
        /// </summary>
        public string? PatientName { get; set; }

        /// <summary>
        /// Gets or sets the value.
        /// </summary>
        public string? AdmissionNo { get; set; }

        /// <summary>
        /// Gets or sets the email.
        /// </summary>
        public int? PatientId { get; set; }

        /// <summary>
        /// Gets or sets the mobile.
        /// </summary>
        public string? DepartmentName { get; set; }

        /// <summary>
        /// Gets or sets the  appoinment no.
        /// </summary>
        public string? AppointmentNo { get; set; }

        /// <summary>
        /// Gets or sets the gender.
        /// </summary>
        public int TotalAmount { get; set; }

        /// <summary>
        /// Gets or sets the country id.
        /// </summary>
        public int TotalAppointments { get; set; }

        /// <summary>
        /// Gets or sets the active.
        /// </summary>
        public bool? Active { get; set; }

        /// <summary>
        /// Gets or sets the visit type.
        /// </summary>
        public char? VisitType { get; set; }

        /// <summary>
        /// Gets or sets the created date.
        /// </summary>
        public string? AppointmentDate { get; set; }

        /// <summary>
        /// Gets or sets the optional text 2.
        /// </summary>
        public TimeSpan AppointmentTime { get; set; }

        /// <summary>
        /// Gets or sets the optional text 2.
        /// </summary>
        public string AppointmentTimeString { get; set; }

        /// <summary>
        /// Gets or sets the page index.
        /// </summary>
        public int PageIndex { get; set; }

        /// <summary>
        /// Gets or sets the page size.
        /// </summary>
        public int PageSize { get; set; }

        /// <summary>
        /// Gets or sets the total items.
        /// </summary>
        public int TotalItems { get; set; }
        /// <summary>
        /// Gets or sets the mobile.
        /// </summary>
        public string Mobile { get; set; }

        /// <summary>
        /// Gets or sets the umr no.
        /// </summary>
        public string? UMRNo { get; set; }

        /// <summary>
        /// Gets or sets the created by.
        /// </summary>
        public string CreatedBy { get; set; }

        /// <summary>
        /// Gets or sets the role name.
        /// </summary>
        public string RoleName { get; set; }
        /// <summary>
        /// Gets or sets the referrred by.
        /// </summary>
        public string? ReferredBy { get; set; }
        /// <summary>
        /// Gets or sets the referrred by name.
        /// </summary>
        public string? ReferredByName { get; set; }

        /// <summary>
        /// Gets or sets the paymentType.
        /// </summary>
        public string? PaymentType { get; set; }

        /// <summary>
        /// Gets or sets the street address.
        /// </summary>
        public string? StreetAdress { get; set; }
        /// <summary>
        /// Gets or sets the city.
        /// </summary>
        public string? City { get; set; }
        /// <summary>
        /// Gets or sets the state.
        /// </summary>
        public string? State { get; set; }
        /// <summary>
        /// Gets or sets the zipcode.
        /// </summary>
        public string? Zipcode { get; set; }

        /// <summary>
        /// Gets or sets the Location id.
        /// </summary>
        public int LocationId { get; set; }

        /// <summary>
        /// Gets or sets the Pay Type id.
        /// </summary>
        public int? PayTypeId { get; set; }
        /// <summary>
        /// Gets or sets the name.
        /// </summary>
        public string? Name { get; set; }
        /// <summary>
        /// Gets or sets the patientReferredbyId.
        /// </summary>
        public int? PatientReferredById { get; set; }
        // <summary>
        /// Gets or sets the created date.
        /// </summary>
        /// <value>
        /// The created date.
        /// </value>
        public DateTime ReceiptDate { get; set; }
        /// <summary>
        /// Gets or sets the AppointmentTypeName.
        /// </summary>
        public string? AppointmentTypeName { get; set; }
        /// <summary>
        /// Gets or sets the appointmentTypeId.
        /// </summary>
        public int? AppointmentTypeId { get; set; }

        /// <summary>
        /// Gets or sets the appointmentTypeId.
        /// </summary>
        public bool? PaymentStatus { get; set; }

        /// <summary>
        /// Gets or sets the Appointment Status.
        /// </summary>
        public string? Status { get; set; }

        /// <summary>
        /// Gets or sets the freeFollowUpDays Limit.
        /// </summary>
        public int? FreeFollowUpDaysLimit { get; set; }

        /// <summary>
        /// Gets or sets the FreeFollowUp ValidityDate .
        /// </summary>
        public DateTime? FreeFollowUpValidityDate { get; set; }

        /// <summary>
        /// Gets or sets the result type .
        /// </summary>
        public string ResultType { get; set; }
        /// <summary>
        /// Gets or sets the result type .
        /// </summary>
        public int AccountId { get; set; }
        

    }
}
