mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 21:13:12 +00:00
129 lines
3.8 KiB
C#
129 lines
3.8 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Data.SeaHavenIndustries
|
|
{
|
|
public class Employee
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
// General
|
|
[Required]
|
|
public string FirstName { get; set; } = null!;
|
|
public string? MiddleName { get; set; }
|
|
[Required]
|
|
public string LastName { get; set; } = null!;
|
|
public int? DepartmentId { get; set; }
|
|
public string? TimeZone { get; set; }
|
|
public int? Gender { get; set; }
|
|
public DateTime? DateOfBirth { get; set; }
|
|
public int? JobTitleId { get; set; }
|
|
public string? EmployeeNumber { get; set; }
|
|
public DateTime? HireDate { get; set; }
|
|
public int? RegionId { get; set; }
|
|
public bool? CanChangeProviderNumber { get; set; }
|
|
public string? About { get; set; }
|
|
|
|
// Login & Role
|
|
public int? PermissionGroupId { get; set; }
|
|
public string? UserName { get; set; }
|
|
public string? ConfirmUserName { get; set; }
|
|
|
|
// Additional
|
|
public string? SMSAddress { get; set; }
|
|
public string? Website { get; set; }
|
|
|
|
// Social
|
|
public string? FacebookUrl { get; set; }
|
|
public string? LinkedInUrl { get; set; }
|
|
public string? TwitterUrl { get; set; }
|
|
|
|
// Status
|
|
public string? Status { get; set; }
|
|
public DateTime? LastLogin { get; set; }
|
|
|
|
// Audit
|
|
public bool? IsDeleted { get; set; }
|
|
public string? CreatedBy { get; set; }
|
|
public DateTime? CreatedDate { get; set; }
|
|
public DateTime? LastModificationTime { get; set; }
|
|
public int? LastModifierUserId { get; set; }
|
|
|
|
// Navigation
|
|
public Department? Department { get; set; }
|
|
public JobTitle? JobTitle { get; set; }
|
|
public Region? Region { get; set; }
|
|
|
|
public EmployeeAddress? Address { get; set; }
|
|
public ICollection<EmployeePhone> Phones { get; set; } = new List<EmployeePhone>();
|
|
public ICollection<EmployeeEmail> Emails { get; set; } = new List<EmployeeEmail>();
|
|
}
|
|
|
|
public class EmployeeAddress
|
|
{
|
|
public int Id { get; set; }
|
|
public int EmployeeId { get; set; }
|
|
|
|
public string? Street { get; set; }
|
|
public string? StreetLineTwo { get; set; }
|
|
public string? City { get; set; }
|
|
public string? Zip { get; set; }
|
|
public string? CountryCode { get; set; }
|
|
public string? StateCode { get; set; }
|
|
public int? CountyId { get; set; }
|
|
|
|
public Employee Employee { get; set; } = null!;
|
|
}
|
|
|
|
public class EmployeePhone
|
|
{
|
|
public int Id { get; set; }
|
|
public int EmployeeId { get; set; }
|
|
public int? PhoneTypeId { get; set; }
|
|
public string? Number { get; set; }
|
|
public string? Extension { get; set; }
|
|
public bool? IsPrimary { get; set; }
|
|
|
|
public Employee Employee { get; set; } = null!;
|
|
}
|
|
|
|
public class EmployeeEmail
|
|
{
|
|
public int Id { get; set; }
|
|
public int EmployeeId { get; set; }
|
|
public Employee? Employee { get; set; }
|
|
|
|
public int? EmailTypeId { get; set; }
|
|
|
|
[MaxLength(256)]
|
|
public string? Address { get; set; }
|
|
|
|
public bool? IsPrimary { get; set; }
|
|
}
|
|
|
|
public class Department
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
[MaxLength(200)]
|
|
public string Name { get; set; } = null!;
|
|
public ICollection<Employee>? Employees { get; set; }
|
|
}
|
|
|
|
public class JobTitle
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
[MaxLength(200)]
|
|
public string Name { get; set; } = null!;
|
|
public ICollection<Employee>? Employees { get; set; }
|
|
}
|
|
|
|
public class Region
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
[MaxLength(200)]
|
|
public string Name { get; set; } = null!;
|
|
public ICollection<Employee>? Employees { get; set; }
|
|
}
|
|
}
|