using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
using BMA.EHR.Recurit.Exam.Service.Models;

namespace BMA.EHR.Profile.Service.Models.HR
{
    public class OrganizationEntity : EntityBase
    {

        //[ForeignKey("OrganizationOrganizationId")]
        //public OrganizationOrganization? OrganizationOrganization_OrganizationOrganizationId { get; set; }

        [Column(Order = 2), Comment("OrganizationOrganizationId")]
        public Guid? OrganizationOrganizationId { get; set; }

        //[ForeignKey("OrganizationShortNameId")]
        //public OrganizationShortName? OrganizationShortName_OrganizationShortNameId { get; set; }

        [Column(Order = 3), Comment("OrganizationShortNameId")]
        public Guid? OrganizationShortNameId { get; set; }

        //[ForeignKey("OrganizationTypeId")]
        //public OrganizationType? OrganizationType_OrganizationTypeId { get; set; }

        [Column(Order = 4), Comment("OrganizationTypeId")]
        public Guid? OrganizationTypeId { get; set; }

        //[ForeignKey("OrganizationLevelId")]
        //public OrganizationLevel? OrganizationLevel_OrganizationLevelId { get; set; }

        [Column(Order = 5), Comment("OrganizationLevelId")]
        public Guid? OrganizationLevelId { get; set; }

        //[ForeignKey("OrganizationTelExternalId")]
        //public OrganizationTelExternal? OrganizationTelExternal_OrganizationTelExternalId { get; set; }

        [Column(Order = 6), Comment("OrganizationTelExternalId")]
        public Guid? OrganizationTelExternalId { get; set; }

        //[ForeignKey("OrganizationTelInternalId")]
        //public OrganizationTelInternal? OrganizationTelInternal_OrganizationTelInternalId { get; set; }

        [Column(Order = 7), Comment("OrganizationTelInternalId")]
        public Guid? OrganizationTelInternalId { get; set; }

        //[ForeignKey("OrganizationFaxId")]
        //public OrganizationFax? OrganizationFax_OrganizationFaxId { get; set; }

        [Column(Order = 8), Comment("OrganizationFaxId")]
        public Guid? OrganizationFaxId { get; set; }

        [ForeignKey("ParentId")]
        public OrganizationEntity? Organization_ParentId { get; set; }

        [Column(Order = 9), Comment("ParentId")]
        public Guid? ParentId { get; set; }

        [Column(Order = 10), Comment("OrganizationAgencyId")]
        public Guid? OrganizationAgencyId { get; set; }

        [Column(Order = 11), Comment("OrganizationGovernmentAgencyId")]
        public Guid? OrganizationGovernmentAgencyId { get; set; }

        [Column(Order = 12), Comment("OrganizationOrder")]
        public int? OrganizationOrder { get; set; }

        [Column(Order = 13), Comment("OrganizationUserNote")]
        public string? OrganizationUserNote { get; set; }

        public List<OrganizationEntity> Organizations { get; } = new();

    }
}
