Skip to content

Database — Core: HR

The employee master file and everything hanging off it: identity documents, family, contracts, positions, allowances and deductions, attachments, e-signatures, attendance and leave.

AppUser is the centre of the schema — more relationships point at it than at any other table, and it is one of only four entities carrying a global query filter. See the HR module for what these tables are used for, and HR Onboarding for the order they are written in.

21 entities in NKO_DB, context NKO_DBEntities1.

How to read this page

Generated from the EF Core model in NKO.Lib/NKO.DataAccess/DbModel/ — class names, property types, nullability, data annotations and the relationships configured in NKO_DBEntities1.OnModelCreating.

Each heading is the table name. Where the C# class is named differently — it is often singular where the table is plural (StockDetail the class, StockDetails the table) — the class name is stated under the heading. The file name is not authoritative: StockDetails.cs declares public class StockDetail.

A ✓ in Null means the column is nullable: a nullable value type, or a reference type with no [Required] — so a [Required] string is shown as not-null. Foreign keys are shown where the fluent configuration or the <Entity>Id naming convention identifies a target.

Entities

AppUser

[Table("AppUser")] · inherits BaseEntity · has a global query filter
NKO.Lib/NKO.DataAccess/DbModel/AppUser.cs

Global query filter

HasQueryFilter(x => !x.IsDeleted && x.Status == 1) — every query on AppUser is filtered unless it calls IgnoreQueryFilters().

erDiagram
    direction LR
    AppUser {
        int UserId PK
        int DistrictId FK
        int ManagerId FK
        int TechManagerId FK
        int BranchId FK
        int SubBranchId FK
        int NatId FK
        int SndNatId FK
        int CountryId FK
        int ApplicantId FK
        string IdentityUserId FK
    }
    District {
        int DistrictId PK
    }
    CommonBranch {
        int BranchId PK
    }
    CommonSubBranch {
        int SubBranchId PK
    }
    Nationality {
        int NationalityId PK
    }
    CommonCountry {
        int CommonCountryId PK
    }
    Applicants {
        int ApplicantId PK
    }
    ApplicationUser {
        int None PK
    }
    District |o--o{ AppUser : "DistrictId"
    AppUser |o--o{ AppUser : "ManagerId, TechManagerId"
    CommonBranch ||--o{ AppUser : "BranchId"
    CommonSubBranch ||--o{ AppUser : "SubBranchId"
    Nationality |o--o{ AppUser : "NatId, SndNatId"
    CommonCountry |o--o{ AppUser : "CountryId"
    Applicants |o--o{ AppUser : "ApplicantId"
    ApplicationUser ||--o{ AppUser : "IdentityUserId"
Column Type Null Notes
UserId int PK
UserGuid Guid
BranchId int FK → CommonBranch
Firstname string ✓ [StringLength(50)]
Lastname string ✓ [StringLength(50)]
NoNKOEmail bool
Email string ✓
PrivateEmail string ✓
MobilePhone string ✓
IsWhatsappSame bool
WhatsappPhone string ✓
ProfileImage string ✓
Birthdate DateTime? ✓ [Column(TypeName = "date")]
BirthPlace string ✓
AboutText string ✓ [Column(TypeName = "text")]
IdentityId string ✓
IdentityType int? ✓
DateOfStart DateTime [Column(TypeName = "date")]
DateOfLeft DateTime? ✓ [Column(TypeName = "date")]
ManagerId int? ✓ FK → AppUser
TechManagerId int? ✓ FK → AppUser
IsMale bool
MaritalStatus int? ✓
ProjectId int? ✓
UserCode string ✓ [StringLength(50)]
Qualification int? ✓
Specialization string ✓
NatId int? ✓ FK → Nationality
SndNatId int? ✓ FK → Nationality
CountryId int? ✓ FK → CommonCountry
FatherName string ✓ [StringLength(50)]
DistrictId int? ✓ FK → District
ResCountryId int? ✓
GovernorateId int? ✓
Languages string ✓
SubBranchId int FK → CommonSubBranch
IsPinEnabled bool
PinCode string ✓
PinAttempts int
Status int
AllowRemoteAttendance bool
IgnoreAttendanceCalculation bool
AckEmailEnabled bool
IsPrivate bool
IsDeleted bool
CreatedBy int
CreatedOn DateTime
ApplicantId int? ✓ FK → Applicants
IdentityUserId string ✓ FK → ApplicationUser

Navigation: District → District, AppUserManager → AppUser, AppUserTechManager → AppUser, CommonBranch → CommonBranch, CommonSubBranch → CommonSubBranch, Nationality → Nationality, SndNationality → Nationality, CommonCountry → CommonCountry, AppUserExtend → AppUserExtend, Applicant → Applicants, User → ApplicationUser, AppUserAllowance → ICollection<AppUserAllowance>, AppUserAttachment → ICollection<AppUserAttachment>, AppUserBankPayment → ICollection<AppUserBankPayment>, AppUserContract → ICollection<AppUserContract>, AppUserGroupMember → ICollection<AppUserGroupMember>, AppUserInsurance → ICollection<AppUserInsurance>, AppUserSalaries → ICollection<AppUserSalary>, AppUserFamilies → ICollection<AppUserFamily>, AppUserManagers → ICollection<AppUser>, AppUserTechManagers → ICollection<AppUser>, AppUserReward → ICollection<AppUserReward>, AppUserDeductions → ICollection<AppUserDeduction>, AppUserSign → ICollection<AppUserSign>, ArchiveFile → ICollection<ArchiveFile>, Comment → ICollection<Comment>, CommitteeUser → ICollection<CommitteeUser>, CommonBranchTreasures → ICollection<CommonBranch>, CommonBranchManagers → ICollection<CommonBranch>, CommonBranchLogistics → ICollection<CommonBranch>, CommonBranchFinances → ICollection<CommonBranch>, CommonBranchHRs → ICollection<CommonBranch>, CommonBranchAccountings → ICollection<CommonBranch>, CommonSharedPermission → ICollection<CommonSharedPermission>, Evaluation → ICollection<Evaluation>, Evaluation1 → ICollection<Evaluation>, Evaluation2 → ICollection<Evaluation>, Evaluation3 → ICollection<Evaluation>, Evaluation4 → ICollection<Evaluation>, EvaluationElement → ICollection<EvaluationElement>, EvaluationsDegree → ICollection<EvaluationsDegree>, Job → ICollection<Job>, Job1 → ICollection<Job>, Job2 → ICollection<Job>, Job3 → ICollection<Job>, JobHRs → ICollection<Job>, Job4 → ICollection<Job>, Job5 → ICollection<Job>, Job6 → ICollection<Job>, Job7 → ICollection<Job>, Job8 → ICollection<Job>, Job9 → ICollection<Job>, JobPermission → ICollection<JobPermission>, Leave → ICollection<Leave>, Leave1 → ICollection<Leave>, Leave2 → ICollection<Leave>, LeaveGMs → ICollection<Leave>, Leave3 → ICollection<Leave>, LeaveCancels → ICollection<Leave>, LeaveNextUsers → ICollection<Leave>, LeaveSubtitutes → ICollection<Leave>, LeaveBalance → ICollection<LeaveBalance>, Note → ICollection<Note>, Notification → ICollection<Notification>, ReqNotification → ICollection<Notification>, PartnersContribution → ICollection<PartnersContribution>, Payroll → ICollection<Payroll>, Payroll1 → ICollection<Payroll>, Payroll2 → ICollection<Payroll>, Payroll4 → ICollection<Payroll>, Payroll5 → ICollection<Payroll>, Payroll6 → ICollection<Payroll>, PayrollInfo → ICollection<PayrollInfo>, AppUserProjectPermissions → ICollection<AppUserProjectPermission>, PurchaseOrder → ICollection<PurchaseOrder>, PurchaseOrderCancels → ICollection<PurchaseOrder>, PurchaseOrder1 → ICollection<PurchaseOrder>, PurchaseOrder2 → ICollection<PurchaseOrder>, PurchaseOrder3 → ICollection<PurchaseOrder>, PurchaseOrderBH2s → ICollection<PurchaseOrder>, PurchaseOrder4 → ICollection<PurchaseOrder>, PurchaseRequest → ICollection<PurchaseRequest>, PurchaseRequest1 → ICollection<PurchaseRequest>, PurchaseRequest2 → ICollection<PurchaseRequest>, PurchaseRequest3 → ICollection<PurchaseRequest>, PurchaseRequest4 → ICollection<PurchaseRequest>, PurchaseRequest6 → ICollection<PurchaseRequest>, PurchaseRequest8 → ICollection<PurchaseRequest>, PurchaseRequest9 → ICollection<PurchaseRequest>, PurchaseRequestSOD1 → ICollection<PurchaseRequest>, PurchaseRequestSOD2 → ICollection<PurchaseRequest>, PurchaseRequestSOD3 → ICollection<PurchaseRequest>, PurchaseRequestSOD4 → ICollection<PurchaseRequest>, RecruitmentTracker → ICollection<RecruitmentTracker>, RecruitmentTracker1 → ICollection<RecruitmentTracker>, RecruitmentTracker2 → ICollection<RecruitmentTracker>, RecruitmentTracker3 → ICollection<RecruitmentTracker>, RecruitmentTrackerInterview → ICollection<RecruitmentTrackerInterview>, RFQs → ICollection<RFQs>, RFQs1 → ICollection<RFQs>, RFQs2 → ICollection<RFQs>, RFQs3 → ICollection<RFQs>, RFQs4 → ICollection<RFQs>, RFQs6 → ICollection<RFQs>, RFQs8 → ICollection<RFQs>, RFQsCancels → ICollection<RFQs>, RFQsPMs → ICollection<RFQs>, RFQResponsibles → ICollection<RFQs>, RFQTechnicalComs1 → ICollection<RFQTechnical>, RFQTechnicalComs2 → ICollection<RFQTechnical>, RFQTechnicalComs3 → ICollection<RFQTechnical>, RFQTechnicalRefuse → ICollection<RFQTechnical>, RFQTechnicalNext → ICollection<RFQTechnical>, RFQTechnicalCancel → ICollection<RFQTechnical>, TechnicalInterView1 → ICollection<TechnicalInterView>, TechnicalInterView2 → ICollection<TechnicalInterView>, TechnicalInterView3 → ICollection<TechnicalInterView>, TechnicalInterView4 → ICollection<TechnicalInterView>, TechnicalInterView5 → ICollection<TechnicalInterView>, TechnicalInterView6 → ICollection<TechnicalInterView>, Timesheet → ICollection<Timesheet>, Timesheet1 → ICollection<Timesheet>, Timesheet2 → ICollection<Timesheet>, Timesheet4 → ICollection<Timesheet>, Timesheet5 → ICollection<Timesheet>, Timesheet6 → ICollection<Timesheet>, UpdatedUser → ICollection<UpdatedUser>, CreatedByTrainingRequests → ICollection<TrainingRequest>, ManagerTrainingRequests → ICollection<TrainingRequest>, HRTrainingRequests → ICollection<TrainingRequest>, FinanceTrainingRequests → ICollection<TrainingRequest>, CountryTrainingRequests → ICollection<TrainingRequest>, NextTrainingRequests → ICollection<TrainingRequest>, RefuseTrainingRequests → ICollection<TrainingRequest>, CreatedByAdvances → ICollection<AppUserAdvance>, ManagerAdvances → ICollection<AppUserAdvance>, DeptAdvances → ICollection<AppUserAdvance>, FinanceAdvances → ICollection<AppUserAdvance>, HRAdvances → ICollection<AppUserAdvance>, _1GuarantorAdvances → ICollection<AppUserAdvance>, _2GuarantorAdvances → ICollection<AppUserAdvance>, CountryAdvances → ICollection<AppUserAdvance>, AccountingBranchAdvances → ICollection<AppUserAdvance>, RefuseAdvances → ICollection<AppUserAdvance>, CancelAdvances → ICollection<AppUserAdvance>, NextUserAdvances → ICollection<AppUserAdvance>, AppUserRelatives → ICollection<AppUserRelative>, Announcements → ICollection<Announcements>, AppUserCharges → ICollection<AppUserCharge>, PaymentOrderCreatedBys → ICollection<PaymentOrder>, PaymentOrderBHs → ICollection<PaymentOrder>, PaymentOrderFinances → ICollection<PaymentOrder>, PaymentOrderSODs → ICollection<PaymentOrder>, PaymentOrderNexts → ICollection<PaymentOrder>, PaymentOrderRefuses → ICollection<PaymentOrder>, PaymentOrderCancels → ICollection<PaymentOrder>, PaymentOrderPayers → ICollection<PaymentOrder>, GoodReceivedNotesCreatedBy → ICollection<GoodReceivedNote>, GoodReceivedNotesRecipient → ICollection<GoodReceivedNote>, GoodReceivedNotesRefuse → ICollection<GoodReceivedNote>, GoodReceivedNotesCancel → ICollection<GoodReceivedNote>, GoodReceivedNotesNext → ICollection<GoodReceivedNote>, RFQProviderJustificationsCreatedBy → ICollection<RFQProviderJustification>, RFQProviderJustificationsNext → ICollection<RFQProviderJustification>, RFQProviderJustificationsRefuse → ICollection<RFQProviderJustification>, RFQProviderJustificationsCancel → ICollection<RFQProviderJustification>, RFQProviderJustificationsCom1 → ICollection<RFQProviderJustification>, RFQProviderJustificationsCom2 → ICollection<RFQProviderJustification>, RFQProviderJustificationsCom3 → ICollection<RFQProviderJustification>, RFQProviderJustificationsSC → ICollection<RFQProviderJustification>, Attendances → ICollection<Attendance>, AppUserOvertimeReqs → ICollection<AppUserOvertime>, AppUserOvertimeEmployees → ICollection<AppUserOvertime>, AppUserOvertimeManagers → ICollection<AppUserOvertime>, AppUserOvertimeDepts → ICollection<AppUserOvertime>, AppUserOvertimeHRs → ICollection<AppUserOvertime>, AppUserOvertimeGMs → ICollection<AppUserOvertime>, AppUserOvertimeFinances → ICollection<AppUserOvertime>, AppUserOvertimeRefuses → ICollection<AppUserOvertime>, AppUserOvertimeCancels → ICollection<AppUserOvertime>, AppUserOvertimeNextUsers → ICollection<AppUserOvertime>, BudgetLinesUsers → ICollection<BudgetLinesUser>

AppUserAttachment

[Table("AppUserAttachment")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/AppUserAttachment.cs

erDiagram
    AppUserAttachment {
        int AppUserAttachmentId PK
        int UserId FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ AppUserAttachment : "UserId"
Column Type Null Notes
AppUserAttachmentId int PK
AttachmentGuid Guid
UserId int FK → AppUser
AppUserAttachmentTypeId AppUserAttachmentType
IdNumber string ✓
IsValid bool? ✓
StartDate DateTime? ✓
EndDate DateTime? ✓
FileName string ✓
FilePath string ✓
Description string ✓ [Column(TypeName = "ntext")]
Qualification int? ✓
CreatedBy int
CreatedOn DateTime
SGKList bool? ✓
DonorTypeId int? ✓
MainCategory MainCategory

Navigation: AppUser → AppUser

AppUserContract

[Table("AppUserContract")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/AppUserContract.cs

erDiagram
    direction LR
    AppUserContract {
        int ContractId PK
        int UserId FK
        int PositionId FK
        int ProjectId FK
        int DepartmentId FK
        int DefaultNatId FK
    }
    AppUser {
        int UserId PK
    }
    AppUserPosition {
        int PositionId PK
    }
    Project {
        int ProjectId PK
    }
    CommonDepartment {
        int DepartmentId PK
    }
    Nationality {
        int NationalityId PK
    }
    AppUserOvertime {
        int OverTimeId PK
        int ContractId FK
    }
    Leave {
        int LeaveId PK
        int ContractId FK
    }
    AppUser ||--o{ AppUserContract : "UserId"
    AppUserPosition ||--o{ AppUserContract : "PositionId"
    Project |o--o{ AppUserContract : "ProjectId"
    CommonDepartment |o--o{ AppUserContract : "DepartmentId"
    Nationality |o--o{ AppUserContract : "DefaultNatId"
    AppUserContract ||--o{ AppUserOvertime : "ContractId"
    AppUserContract |o--o{ Leave : "ContractId"
Column Type Null Notes
ContractId int PK
UserId int FK → AppUser
StartDate DateTime [Required] · [Column(TypeName = "date")]
EndDate DateTime [Required] · [Column(TypeName = "date")]
ContractEndDate DateTime [Required]
FilePath string ✓
FileName string ✓
Amount decimal [Required]
WorkType int
ContractType int [Required]
IsDirect bool
CreatedBy int
CreatedOn DateTime
PositionId int FK → AppUserPosition · [Required]
Currency int [Required]
ProjectId int? ✓ FK → Project
LevelId int? ✓
StepId int? ✓
Allowance decimal? ✓
TrailPeriod int? ✓
WorkingDays int? ✓
WorkingHours int? ✓
LeaveBalance double? ✓
Firstname string ✓
IdType int? ✓
Identity string ✓
Lastname string ✓
BirthPlace string ✓
NatId int? ✓
NKOProfileId int
DepartmentId int? ✓ FK → CommonDepartment
DefaultNatId int? ✓ FK → Nationality
SalaryType int? ✓
PositionDescripitionArabic string ✓
PositionDescripitionEnglish string ✓
AutoLeaveCaluculate bool

Navigation: AppUser → AppUser, AppUserPosition → AppUserPosition, Project → Project, CommonDepartment → CommonDepartment, DefaultNationality → Nationality, Leaves → ICollection<Leave>, AppUserOvertimes → ICollection<AppUserOvertime>

AppUserExtend

[Table("AppUserExtend")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/AppUserExtend.cs

erDiagram
    AppUserExtend {
        int UserId PK,FK
        int BankId FK
    }
    AppUser {
        int UserId PK
    }
    Bank {
        int Id PK
    }
    AppUser ||--o| AppUserExtend : "UserId"
    Bank |o--o{ AppUserExtend : "BankId"
Column Type Null Notes
UserId int PK · FK → AppUser (1:1)
Firstname string ✓ [StringLength(50)]
Lastname string ✓ [StringLength(50)]
Fathername string ✓ [StringLength(50)]
BirthPlace string ✓ [StringLength(50)]
Specialization string ✓
EmPersonName string ✓
RelationshipType int? ✓
BloodType int? ✓
EmPhoneNo string ✓
IsEmWhatsappSame bool
EmWhatsPhoneNo string ✓
EmAddress string ✓
EmGeneralInfo string ✓
IsChronicDiseases bool
ContinuosMedication string ✓
Handicap string ✓
EmFirstPersonName string ✓
EmFirstPersonPhone string ✓
EmSecondPersonName string ✓
EmSecondPersonPhone string ✓
EmThirdPersonName string ✓
EmThirdPersonPhone string ✓
Address string ✓
Facebook string ✓
Twitter string ✓
Instagram string ✓
Linkedin string ✓
HasWorkPermit bool
WorkPermit string ✓
WorkPermitFrom DateTime? ✓
WorkPermitTo DateTime? ✓
HasPassport bool
Passport string ✓
PassportFrom DateTime? ✓
PassportTo DateTime? ✓
Iban string ✓
BankName string ✓
BankId int? ✓ FK → Bank
BankRequired bool [Required]
RecipientFullName string ✓
PolicyAccepted bool
HouseNumber string ✓

Navigation: AppUser → AppUser, Bank → Bank

AppUserFamily

DbSet AppUserFamilies · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/AppUserFamily.cs

erDiagram
    AppUserFamily {
        int AppUserFamilyId PK
        int UserId FK
        int NationalityId FK
    }
    AppUser {
        int UserId PK
    }
    Nationality {
        int NationalityId PK
    }
    AppUser ||--o{ AppUserFamily : "UserId"
    Nationality ||--o{ AppUserFamily : "NationalityId"
Column Type Null Notes
AppUserFamilyId int PK
UserId int FK → AppUser
MemberType bool
Name string ✓ [StringLength(50)]
BirthDate DateTime? ✓ [Column(TypeName = "date")]
NationalityId int FK → Nationality
FilePath string ✓
FileName string ✓
CreatedBy int
CreatedOn DateTime

Navigation: AppUser → AppUser, Nationality → Nationality

AppUserInsurance

[Table("AppUserInsurance")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/AppUserInsurance.cs

erDiagram
    AppUserInsurance {
        int AppUserInsuranceId PK
        int UserId FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ AppUserInsurance : "UserId"
Column Type Null Notes
AppUserInsuranceId int PK
UserId int FK → AppUser
AmountUSD decimal
AmountTL decimal? ✓
Month int
Year int
CreatedBy int
CreatedOn DateTime

Navigation: AppUser → AppUser

AppUserPosition

[Table("AppUserPosition")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/AppUserPosition.cs

erDiagram
    direction LR
    AppUserPosition {
        int PositionId PK
        int DepartmentId FK
        int LineManagerPositionId FK
    }
    CommonDepartment {
        int DepartmentId PK
        int PositionId FK
    }
    Job {
        int JobId PK
        int PositionId FK
    }
    PositionQuestion {
        int PositionQuestionId PK
        int PositionId FK
    }
    AppUserContract {
        int ContractId PK
        int PositionId FK
    }
    AppUserCharge {
        int Id PK
        int PositionId FK
    }
    BudgetLine {
        int Id PK
        int PositionId FK
    }
    PayrollInfo {
        int PayrollInfoId PK
        int PositionId FK
    }
    CommonDepartment |o--o{ AppUserPosition : "DepartmentId"
    AppUserPosition |o--o{ AppUserPosition : "LineManagerPositionId"
    AppUserPosition ||--o{ Job : "PositionId"
    AppUserPosition ||--o{ PositionQuestion : "PositionId"
    AppUserPosition ||--o{ AppUserContract : "PositionId"
    AppUserPosition |o--o{ CommonDepartment : "PositionId"
    AppUserPosition ||--o{ AppUserCharge : "PositionId"
    AppUserPosition |o--o{ BudgetLine : "PositionId"
    AppUserPosition |o--o{ PayrollInfo : "PositionId"
Column Type Null Notes
PositionId int PK
PositionName string [Required]
NameAr string ✓
NameTr string ✓
Abb string ✓
LineManagerPositionId int? ✓ FK → AppUserPosition
DepartmentId int? ✓ FK → CommonDepartment
IsDisabled bool

Navigation: Department → CommonDepartment, AppUserPositionLineManager → AppUserPosition, AppUserPositionLineManagers → ICollection<AppUserPosition>, BudgetLines → ICollection<BudgetLine>, Job → ICollection<Job>, PayrollInfo → ICollection<PayrollInfo>, AppUserContracts → ICollection<AppUserContract>, AppUserCharges → ICollection<AppUserCharge>, PositionQuestions → ICollection<PositionQuestion>

AppUserRelative

DbSet AppUserRelatives · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/AppUserRelative.cs

erDiagram
    AppUserRelative {
        int AppUserRelativeId PK
        int UserId FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ AppUserRelative : "UserId"
Column Type Null Notes
AppUserRelativeId int PK
AppUserRelativeGuid Guid
RelativeType int
UserId int FK → AppUser
RelativeUserId int
CreatedOn DateTime
CreatedBy int

Navigation: AppUser → AppUser

AppUserSign

[Table("AppUserSign")] · inherits BaseEntity · has a global query filter
NKO.Lib/NKO.DataAccess/DbModel/AppUserSign.cs

Global query filter

HasQueryFilter(x => !x.Deleted) — every query on AppUserSign is filtered unless it calls IgnoreQueryFilters().

erDiagram
    AppUserSign {
        int AppUserSignId PK
        int UserId FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ AppUserSign : "UserId"
Column Type Null Notes
AppUserSignId int PK
UserId int FK → AppUser
SignImage string [Required] · [Column(TypeName = "text")]
SignTemplatePath string ✓
StartDate DateTime
EndDate DateTime
IsApproved SignStatus
ApprovedBy int? ✓
ApproveDate DateTime? ✓
Deleted bool
CreatedBy int
CreatedOn DateTime
RefuseReason SignReason? ✓

Navigation: AppUser → AppUser

ApplicationUser

DbSet ApplicationUsers · implements IBaseEntity directly
NKO.Lib/NKO.DataAccess/DbModel/ApplicationUser.cs

erDiagram
    ApplicationUser {
        int Id
    }
    AppUser {
        int UserId PK
        string IdentityUserId FK
    }
    ApplicationUser ||--o{ AppUser : "IdentityUserId"
Column Type Null Notes
IsEnableLogin bool
Is2FAMandatory bool? ✓
LastCodeSentOn DateTime? ✓
IsPasswordDefault bool? ✓
DateDeleted DateTime? ✓
DateUpdated DateTime? ✓
CreatedBy int? ✓
UpdatedBy int? ✓
DeletedBy int? ✓
DateCreated DateTime? ✓

Attendance

DbSet Attendances
NKO.Lib/NKO.DataAccess/DbModel/Attendance.cs

erDiagram
    Attendance {
        int Id PK
        int UserId FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ Attendance : "UserId"
Column Type Null Notes
Id int PK
CheckIn string ✓ [StringLength(50)]
CheckOut string ✓ [StringLength(50)]
Day int [Required]
Month int [Required]
Year int [Required]
Tasks string ✓
AutoCheckIn bool
AutoCheckOut bool
Type DayType
LeaveType LeaveTypes? ✓
CreatedOn DateTime [Required]
UserId int FK → AppUser · [Required]

Navigation: AppUser → AppUser

CalendarProfile

[Table("CalendarProfile")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/CalendarProfile.cs

erDiagram
    CalendarProfile {
        int CalendarProfileId PK
        int CommonBranchId FK
    }
    CommonBranch {
        int BranchId PK
    }
    CalenderConfiguration {
        int CalenderConfigId PK
        int CalProfileId FK
    }
    PositionLevelMatrix {
        int LevelMatrixId PK
        int CalProfileId FK
    }
    CommonBranch |o--o{ CalendarProfile : "CommonBranchId"
    CalendarProfile ||--o{ CalenderConfiguration : "CalProfileId"
    CalendarProfile ||--o{ PositionLevelMatrix : "CalProfileId"
Column Type Null Notes
CalendarProfileId int PK
Name string [Required] · [StringLength(50)]
StartDate DateTime [Required]
EndDate DateTime [Required]
DailyWorkingHours int [Required]
DailyLunchHour int [Required]
CommonBranchId int? ✓ FK → CommonBranch

Navigation: CommonBranch → CommonBranch, CalenderConfiguration → ICollection<CalenderConfiguration>, PositionLevelMatrix → ICollection<PositionLevelMatrix>

CalendayDays

inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/CalendayDays.cs

erDiagram
    CalendayDays {
        int DayId PK
    }
    CalenderConfiguration {
        int CalenderConfigId PK
        int DayId FK
    }
    CalendayDays ||--o{ CalenderConfiguration : "DayId"
Column Type Null Notes
DayId int PK
DayName string [Required] · [StringLength(50)]

Navigation: CalenderConfiguration → ICollection<CalenderConfiguration>

CalenderConfiguration

[Table("CalenderConfiguration")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/CalenderConfiguration.cs

erDiagram
    CalenderConfiguration {
        int CalenderConfigId PK
        int CalProfileId FK
        int DayId FK
    }
    CalendarProfile {
        int CalendarProfileId PK
    }
    CalendayDays {
        int DayId PK
    }
    CalendarProfile ||--o{ CalenderConfiguration : "CalProfileId"
    CalendayDays ||--o{ CalenderConfiguration : "DayId"
Column Type Null Notes
CalenderConfigId int PK
DayId int FK → CalendayDays
IsHoliday bool
IsHalfHoliday bool
AttendanceFrom TimeSpan? ✓
AttendanceTo TimeSpan? ✓
CalProfileId int FK → CalendarProfile

Navigation: CalendarProfile → CalendarProfile, CalendayDays → CalendayDays

Comment

[Table("Comment")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/Comment.cs

erDiagram
    Comment {
        int CommentId PK
        int CreatedBy FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ Comment : "CreatedBy"
Column Type Null Notes
CommentId int PK
ReferenceId int
AreaId int
SubAreaId int? ✓
Message string [Required] · [Column(TypeName = "ntext")]
CreatedBy int FK → AppUser
CreatedOn DateTime

Navigation: AppUser → AppUser

Leave

[Table("Leave")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/Leave.cs

erDiagram
    direction LR
    Leave {
        int LeaveId PK
        int ReqId FK
        int ManagerId FK
        int HRId FK
        int GMId FK
        int RefusedBy FK
        int CancelId FK
        int SubstituteUserId FK
        int NextUserId FK
        int LeaveTypeId FK
        int ContractId FK
    }
    AppUser {
        int UserId PK
    }
    LeaveType {
        int LeaveTypeId PK
    }
    AppUserContract {
        int ContractId PK
    }
    AppUserOvertimeConsumption {
        int Id PK
        int LeaveId FK
    }
    AppUser ||--o{ Leave : "ReqId"
    AppUser |o--o{ Leave : "ManagerId, HRId, GMId +4 more"
    LeaveType ||--o{ Leave : "LeaveTypeId"
    AppUserContract |o--o{ Leave : "ContractId"
    Leave ||--o{ AppUserOvertimeConsumption : "LeaveId"
Column Type Null Notes
LeaveId int PK
LeaveGuid Guid
ReqId int FK → AppUser
ReqSign bool
ReqNote string ✓ [StringLength(200)]
ReqSignDate DateTime? ✓
ManagerId int? ✓ FK → AppUser
ManagerSign bool
ManagerNote string ✓ [StringLength(200)]
ManagerSignDate DateTime? ✓
HRId int? ✓ FK → AppUser
HRSign bool
HRNote string ✓ [StringLength(200)]
HRSignDate DateTime? ✓
GMId int? ✓ FK → AppUser
GMSign bool
GMNote string ✓ [StringLength(200)]
GMSignDate DateTime? ✓
DaysCount int
FromDate DateTime [Required] · [Column(TypeName = "date")]
ToDate DateTime [Column(TypeName = "date")]
FromTime string ✓
ToTime string ✓
ContactNumber string [Required] · [StringLength(200)]
Description string ✓ [Column(TypeName = "ntext")]
MissonType int? ✓
LeaveTypeId int FK → LeaveType
SubstituteUserId int? ✓ FK → AppUser
StatusId int
RefusedBy int? ✓ FK → AppUser
RefuseSign bool
RefuseNote string ✓ [Column(TypeName = "ntext")]
RefuseDate DateTime? ✓
CancelId int? ✓ FK → AppUser
IsCancelled bool
CancelDate DateTime? ✓
CancelNote string ✓ [StringLength(200)]
NextUserId int? ✓ FK → AppUser
CreatedBy int
CreatedOn DateTime
IsTwin bool
IsHourly bool
IsWaiver bool
ExactDaysCount double
DeadPerson int? ✓
EducationLevel int? ✓
University string ✓
Specialization string ✓
StudAffairsNumber string ✓
BranchId int
SubBranchId int
AbsentId int? ✓
ContractId int? ✓ FK → AppUserContract
IsJustification bool
AutoSigned bool
EmployeeConditionsApprove bool
ManagerConditionsApprove bool

Navigation: AppUserReq → AppUser, AppUserManager → AppUser, AppUserHR → AppUser, AppUserGM → AppUser, AppUserRefuse → AppUser, AppUserCancel → AppUser, AppUserSubtitute → AppUser, AppUserNextUser → AppUser, LeaveType → LeaveType, AppUserContract → AppUserContract, AppUserOvertimeConsumptions → ICollection<AppUserOvertimeConsumption>

LeaveBalance

[Table("LeaveBalance")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/LeaveBalance.cs

erDiagram
    LeaveBalance {
        int LeaveBalanceId PK
        int UserId FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ LeaveBalance : "UserId"
Column Type Null Notes
LeaveBalanceId int PK
UserId int FK → AppUser
Year int
Balance double? ✓
HoursCount int
Desc string ✓

Navigation: AppUser → AppUser

LeaveType

[Table("LeaveType")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/LeaveType.cs

erDiagram
    LeaveType {
        int LeaveTypeId PK
    }
    Leave {
        int LeaveId PK
        int LeaveTypeId FK
    }
    LeaveType ||--o{ Leave : "LeaveTypeId"
Column Type Null Notes
LeaveTypeId int PK
Name string [Required] · [StringLength(50)]
NameAr string ✓ [StringLength(50)]
LeaveCode string [Required] · [StringLength(50)]
AttachRequired bool
IsBusinessConsidered bool
CanJustify bool

Navigation: Leave → ICollection<Leave>

Note

[Table("Note")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/Note.cs

erDiagram
    Note {
        int NoteId PK
        int CreatedBy FK
    }
    AppUser {
        int UserId PK
    }
    AppUser ||--o{ Note : "CreatedBy"
Column Type Null Notes
NoteId int PK
NoteGuid Guid
Title string ✓ [StringLength(50)]
Description string ✓ [Column(TypeName = "ntext")]
AreaId int
ReferenceId int
ReminderDate DateTime? ✓
ShowToEmployee bool
Type int? ✓
CreatedBy int FK → AppUser
CreatedOn DateTime

Navigation: AppUser → AppUser

Reference

DbSet References · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/Reference.cs

erDiagram
    Reference {
        int ReferenceId PK
        int ApplicantId FK
    }
    Applicants {
        int ApplicantId PK
    }
    Applicants ||--o{ Reference : "ApplicantId"
Column Type Null Notes
ReferenceId int PK
ReferenceGuid Guid
ApplicantId int FK → Applicants
CreatedOn DateTime
NameOfContact string [Required]
Email string [Required]
Phone string [Required]
Relationship string [Required]
DateOfEmployment DateTime? ✓ [Required]
ReasonLeavin string [Required]
PositionHeld string [Required]
LastRateRay string [Required]
DescribeJob string [Required]
GreatestStrengths string [Required]
AreasWeakness string [Required]
InitiativeInnovationMark int
InitiativeInnovationComments string ✓
TeamworkCollaborationMark int
TeamworkCollaborationComments string ✓
LeadershipMark int
LeadershipComments string ✓
DecisionMakingMark int
DecisionMakingComments string ✓
CommunicationMark int
CommunicationComments string ✓
QualityMark int
QualityComments string ✓
ProductivityMark int
ProductivityComments string ✓
DependabilityMark int
DependabilityComments string ✓
ReputationMark int
ReputationComments string ✓
HighLevelMark int
HighLevelComments string ✓
AttitudeMark int
AttitudeComments string ✓
ReemployMark int
ReemployComments string ✓
AdditionalInformationMark int
AdditionalInformationComments string ✓
SexualExploitationMark bool
FirstAdditionalContact string ✓
SecondAdditionalContact string ✓
ThirdAdditionalContact string ✓

Navigation: Applicant → Applicants

SpecialHoliday

[Table("SpecialHoliday")] · inherits BaseEntity
NKO.Lib/NKO.DataAccess/DbModel/SpecialHoliday.cs

erDiagram
    SpecialHoliday {
        int HolidayDateId PK
    }
Column Type Null Notes
HolidayDateId int PK
FromDate DateTime [Column(TypeName = "date")]
ToDate DateTime [Column(TypeName = "date")]
IsHalfDay bool [Required]
IsRepeated bool
Description string ✓
NKOProfiles string ✓