using HospitalManagementSystem.Appointments;
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using Volo.Abp.Domain.Entities.Auditing;

namespace HospitalManagementSystem.Doctors
{
    public class Doctor : FullAuditedEntity<Guid>
    {
        public string? FirstName { get; set; }
        public string? LastName { get; set; }
        public string? Gender { get; set; }
        public string? Mobile { get; set; }
        public string? Password { get; set; }
        public string? Designation { get; set; }
        public Guid? DepartmentId { get; set; }
        [ForeignKey("DepartmentId")]
        public virtual Department? Department { get; set; }
        public string? Address { get; set; }
        public string? Email { get; set; }
        public string? DOB { get; set; }
        public string? Education { get; set; }
        public virtual ICollection<Appointment> Appointments { get; set; } = new List<Appointment>();
        public Doctor()
        {
            //Appointments = new List<Appointment>();
        }
        public Doctor(Guid id, string? firstName, string? lastName, 
            string? gender, string? mobile, string? password, 
            string? designation, Guid? departmentId, string? address,
            string? email, string? dOB, string? education) : base(id)
        {
            FirstName = firstName;
            LastName = lastName;
            Gender = gender;
            Mobile = mobile;
            Password = password;
            Designation = designation;
            DepartmentId = departmentId;
            Address = address;
            Email = email;
            DOB = dOB;
            Education = education;
        }
    }
}
