using CommunityToolkit.Mvvm.ComponentModel; using LSFE.MobApp.Entities.Location; using SQLite; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace LSFE.MobApp.Entities.Doctor { [Table("DoctorBackup")] public class DoctorBackup : SyncEntity, INotifyPropertyChanged { private int _doctorId; private string? _firstName; private string? _lastName; private string? _specialization; private string? _middleInitial; private int _institutionId; private string? _institutionName; private string? _emailAddress; private string? _phoneNo; private string? _address; private string? _licenseNo; private bool _isActive = true; private byte _maxVisit; private byte _specializationId; private byte _stageLevelId; private byte _status; private string? _userId; private string? _stageLevelName; private DateTime _createdDate = DateTime.Now; private DateTime _birthDate = DateTime.Now; [PrimaryKey] public Guid Id { get; set; } = Guid.NewGuid(); [Column("DoctorId"), NotNull] public int DoctorId { get => _doctorId; set { _doctorId = value; OnPropertyChanged(); } } public string? FirstName { get => _firstName; set { _firstName = value; OnPropertyChanged(); } } public string? LastName { get => _lastName; set { _lastName = value; OnPropertyChanged(); } } public string? MiddleInitial { get => _middleInitial; set { _middleInitial = value; OnPropertyChanged(); } } public string? Specialization { get => _specialization; set { _specialization = value; OnPropertyChanged(); } } public string? EmailAddress { get => _emailAddress; set { _emailAddress = value; OnPropertyChanged(); } } public string? PhoneNo { get => _phoneNo; set { _phoneNo = value; OnPropertyChanged(); } } public string? Address { get => _address; set { _address = value; OnPropertyChanged(); } } public string? LicenseNo { get => _licenseNo; set { _licenseNo = value; OnPropertyChanged(); } } public DateTime BirthDate { get => _birthDate; set { _birthDate = value; OnPropertyChanged(); } } public byte MaxVisit { get => _maxVisit; set { _maxVisit = value; OnPropertyChanged(); } } public byte SpecializationId { get => _specializationId; set { _specializationId = value; OnPropertyChanged(); } } public byte StageLevelId { get => _stageLevelId; set { _stageLevelId = value; OnPropertyChanged(); } } public int InstitutionId { get => _institutionId; set { _institutionId = value; OnPropertyChanged(); } } public byte Status { get => _status; set { _status = value; OnPropertyChanged(); } } public string? UserId { get => _userId; set { _userId = value; OnPropertyChanged(); } } [Ignore] public string? StageLevelName { get => _stageLevelName; set { _stageLevelName = value; OnPropertyChanged(); } } [Ignore] // This won't be stored, just for query results public string? InstitutionName { get => _institutionName; set { _institutionName = value; OnPropertyChanged(); } } public bool IsActive { get => _isActive; set { _isActive = value; OnPropertyChanged(); } } public DateTime CreatedDate { get => _createdDate; set { _createdDate = value; OnPropertyChanged(); } } } }