Untitled
user_9603071
plain_text
a year ago
28 kB
7
Indexable
using Sealinkapi.Domain.Entities.Common;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
//34 Entities 0 Enums
//create regions ,main table on the top ,
namespace Sealinkapi.Domain.Entities.Catalog.Crew
{
#region enum
public enum IdType
{
DrivingLicense = 1,
Passport = 2,
}
public enum EmplyeeType
{
Crew = 2,
Employee = 1,
}
public enum JobType
{
Fulltime = 1,
Parttime = 2,
Contract = 3,
Permanent = 4
}
public enum CardType
{
passport = 1,
Emirates = 2,
}
public enum Status
{
Active = 1,
Inactive = 2,
}
public enum BloodGroup
{
A_Positive,
A_Negative,
B_Positive,
B_Negative,
AB_Positive,
AB_Negative,
O_Positive,
O_Negative
}
public enum PIDType
{
AadharCard = 1,
DrivingLicence = 2,
PANCard = 3,
PassportNo = 4
}
public enum CountryCode
{
usa =1,
}
#endregion
#region master Table
[Table("Designations", Schema = "Employee")]
public class Designation : AuditableCompanyEntity
{
public string Name { get; set; }
public string Code { get; set; }
public bool IsActive { get; set; }
}
[Table("Divisions", Schema = "Employee")]
public class Division : AuditableCompanyEntity
{
public string Name { get; set; }
public string Code { get; set; }
public bool IsActive { get; set; }
}
#endregion
#region Main table
[Table("OfficialInfos", Schema = "Employee")]
public class OfficialInfo : AuditableCompanyEntity
{
public string? FirstName { get; set; }
[StringLength(100)]
public string? MIddleName { get; set; }
[StringLength(100)]
public string? Surname { get; set; }
[StringLength(20)]
public string? Gender { get; set; }
//New Fields Added
public string? AllocatedVessel { get; set; }
public string? Supervisor { get; set; }
public string? UserGroup { get; set; }
public string? Nationality { get; set; }
public string? BloodGroup { get; set; }
[StringLength(100)]
public string? Rank { get; set; } // Rank
[StringLength(50)]
public string? SeafarerCode { get; set; } // Seafarer Code
[StringLength(100)]
public string? CrewingManager { get; set; } // Crewing Manager
public DateTime? SealinkRegistrationDate { get; set; } // Sealink Registration Date
public PIDType? PIDType { get; set; } // Primary ID Type
[StringLength(50)]
public string? PrimaryIDNumber { get; set; } // Primary ID Number
public Guid? DepartmentId { get; set; }
public Guid? DesignationId { get; set; }
public Guid? DivisionId { get; set; } //using it to fetch crew .its from Master.Division
//TODO: need to Import Master.Country
public CountryCode? CountryCode { get; set; }
[StringLength(20)]
public string? ContactNumber { get; set; }
public Guid? ManagerId { get; set; }
[StringLength(100)]
public string? OfficialEmail { get; set; }
public JobType? JobType { get; set; }
[StringLength(300)]
public string? ProfilePicURL { get; set; }
[StringLength(20)]
public Status? EmployeeStatus { get; set; }
public DateTime? JoinDate { get; set; }
public bool? IsInvited { get; set; }
public bool? IsEnabled { get; set; }
public IdType? IdType { get; set; }
public EmplyeeType? EmployeeType { get; set; }
}
[Table("PersonalInfo", Schema = "Employee")]
public class PersonalInfo : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public BloodGroup bloodGroup { get; set; }
public string PersonalEmail { get; set; }
//TODO : need to import Master.Country
public Guid? PersonalPhoneNumberCountryId { get; set; }
[StringLength(20)]
public string PersonalPhoneNumber { get; set; }
public Guid? NationalityId { get; set; }
[StringLength(20)]
public string AdhaarNumber { get; set; }
[StringLength(15)]
public string PanCardNumber { get; set; }
[StringLength(50)]
public string PlaceOfBirth { get; set; }
public DateTime? DateOfBirth { get; set; }
[StringLength(20)]
//not using right now
//public string IdNumber { get; set; }
//[StringLength(30)]
public string PassportNumber { get; set; }
public Guid? PresentAddressCountryId { get; set; }
[StringLength(50)]
public string PresentAdressCountryName { get; set; }
public Guid? PresentAddressStateId { get; set; }
[StringLength(50)]
public string PresentAddressStateName { get; set; }
[StringLength(100)]
public string PresentAddressBuildingHouseUnit { get; set; }
[StringLength(15)]
public string PresentAddressPostalZipCode { get; set; }
[StringLength(200)]
public string PresentAddressStreetAddress { get; set; }
[StringLength(200)]
public string PresentAddressLocation { get; set; }
public Guid? PermanentAddressCountryId { get; set; }
[StringLength(50)]
public string PermanentAdressCountryName { get; set; }
public Guid? PermanentAddressStateId { get; set; } //TODO: need to import Master.state
[StringLength(50)]
public string PermanentAddressStateName { get; set; }
[StringLength(100)]
public string PermanentAddressBuildingHouseUnit { get; set; }
[StringLength(15)]
public string PermanentAddressPostalZipCode { get; set; }
[StringLength(200)]
public string PermanentAddressStreetAddress { get; set; }
[StringLength(200)]
public string PermanentAddressLocation { get; set; }
[StringLength(5)]
public string IsSameAddress { get; set; }
[StringLength(100)]
public string EmergencyContactName { get; set; }
public Guid? EmergencyPhoneCodeId { get; set; }
[StringLength(20)]
public string EmergencyPhoneNumber { get; set; }
public Guid? EmergencyRelationId { get; set; }
[StringLength(100)]
public string EmergencyEmail { get; set; }
[StringLength(30)]
public string CDCNo { get; set; }
[StringLength(20)]
public string IndusNumber { get; set; }
[StringLength(20)]
public string InternationalId { get; set; }
public DateTime? PassportIssuedOn { get; set; }
[StringLength(200)]
public string SeamanBookNumber { get; set; }
[StringLength(200)]
public string CCRNumber { get; set; }
//public Guid? TypeId { get; set; } //TODO:create enum EmployeeCardType //Master.IdType
//[StringLength(200)]
public CardType CardType { get; set; }
public string CrewId { get; set; } // not using
[StringLength(100)]
public string TradeUnionMembership { get; set; }
public string LinkedInLink { get; set; }
public string FacebookLink { get; set; }
public string InstagramLink { get; set; }
public string WhatsAppLink { get; set; }
}
[Table("Qualification", Schema = "Employee")]
public class Qualification : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public Guid? QualificationTypeId { get; set; }
[StringLength(100)]
public string QualificationStream { get; set; }
public int? QualificationEndYear { get; set; }
[StringLength(100)]
public string QualificationInstitute { get; set; }
[StringLength(100)]
public string QualificationAwardingBody { get; set; }
}
[Table("Skill", Schema = "Employee")]
public class Skill : AuditableEntity
{
public Guid? SkillType { get; set; }
public Guid? SkillName { get; set; }
public Guid? SkillLevel { get; set; }
public OfficialInfo officialInfo { get; set; }
}
[Table("Certifications", Schema = "Employee")]
public class Certification : AuditableEntity
{
public string EmployeeCertificationName { get; set; }
[StringLength(100)]
public string EmployeeAwardingBody { get; set; }
public string CertificationUpload { get; set; }
public string ReferenceNumber { get; set; }
[StringLength(200)]
public DateTime? AwardedDate { get; set; }
public DateTime? ExpiryDate { get; set; }
[StringLength(500)]
public string VerificationLink{ get; set; }
[StringLength(20)]
public string Remarks { get; set; }
public OfficialInfo officialInfo { get; set; }
}
[Table("ActivityLog", Schema = "Employee")]
public class ActivityLog : AuditableEntity
{
public DateTimeOffset? ActivityLogDateTime { get; set; }
[StringLength(200)]
public string ActivityAction { get; set; }
public Guid? RecordId { get; set; }
[StringLength(100)]
public string EntityName { get; set; }
public Guid? SubRecordId { get; set; }
[StringLength(100)]
public string SubRecordEntityName { get; set; }
public OfficialInfo officialInfo { get; set; }
}
[Table("EmployeeUserRole", Schema = "Employee")]
public class EmployeeUserRole : AuditableEntity
{
public Guid? CompanyId { get; set; }
[StringLength(10)]
public string IsDefaultCompany { get; set; }
public OfficialInfo officialInfo { get; set; }
}
[Table("BankInformation", Schema = "Employee")]
public class BankInformation : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public string AccountNumber { get; set; }
public Guid? CountryUId { get; set; }
[StringLength(30)]
public string BranchCode { get; set; }
[StringLength(50)]
public string BankBranch { get; set; }
[StringLength(200)]
public string IBAN { get; set; }
[StringLength(200)]
public string BankName { get; set; }
}
[Table("Competencies", Schema = "Employee")]
public class Competency : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public string CompanyName { get; set; }
[StringLength(100)]
public string JobProfile { get; set; }
public DateTime? From { get; set; }
public DateTime? To { get; set; }
[StringLength(100)]
public string Country { get; set; }
[StringLength(200)]
public string Remarks { get; set; }
[StringLength(50)]
public string Location { get; set; }
[StringLength(5)]
public bool ISCurrentlyPursuing { get; set; }
//public Guid? VesselAssignmentId { get; set; }
//public Guid? CompanyId { get; set; }
//public Guid? VesselId { get; set; }
//public Guid? CountryId { get; set; }
//[StringLength(100)]
//public string GrossRegisteredTonnage { get; set; }
//[StringLength(100)]
//public string NetRegisteredTonnage { get; set; }
//[StringLength(100)]
//public string BrakeHorsepower { get; set; }
//[StringLength(100)]
//public string DeadweightTonnage { get; set; }
//[StringLength(100)]
//public string DesignationId { get; set; }
//[StringLength(100)]
//public string PortofEngagementId { get; set; }
//[StringLength(100)]
//public string PortofDischargeId { get; set; }
}
#endregion
#region Documents
[Table("Document", Schema = "Employee")]
public class Document : AuditableEntity
{
public Guid? DocumentFolderId { get; set; }
public DateTimeOffset? DocumentCreatedDate { get; set; }
[StringLength(200)]
public string DocumentFileName { get; set; }
public string DocumentURL { get; set; }
[StringLength(20)]
public string DocumentVisibility { get; set; }
[StringLength(500)]
public string DocumentFileSize { get; set; }
public Guid? DocumentTypeId { get; set; }
public OfficialInfo officialInfo { get; set; }
}
[Table("DocumentExpireEmail", Schema = "Employee")]
public class DocumentExpireEmail : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public bool? Enabled { get; set; }
}
[Table("DocumentExpireEmailHistory", Schema = "Employee")]
public class DocumentExpireEmailHistory : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public string Status { get; set; }
}
//will use in future
//[Table("DocumentExpireNotification", Schema = "Employee")]
//public class DocumentExpireNotification : AuditableEntity
//{
// public OfficialInfo officialInfo { get; set; }
// public Guid? EmployeeDocumentId { get; set; }
// public bool? SeenNotification { get; set; }
//}
[Table("DocumentFolder", Schema = "Employee")]
public class DocumentFolder : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public string DocumentFolderName { get; set; }
public string DocumentFolderVisibility { get; set; }
public string IsDefaultDocumentFolder { get; set; }
}
[Table("DocumentMap", Schema = "Employee")]
public class DocumentMap : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public Guid? EmployeeQualificationId { get; set; }
public Guid? EmployeeCertificationId { get; set; }
public Guid? employeeCourseUId { get; set; }
public Guid? EmployeeDocumentId { get; set; }
}
#endregion
#region Contract
[Table("ContractModule", Schema = "Crew")]
public class ContractModule : AuditableEntity
{
[StringLength(20)]
public string ContractModuleVisibility { get; set; }
[StringLength(100)]
public string ContractModuleName { get; set; }
public Guid? ContractModuleCreatedUser { get; set; }
public Guid? ContractModuleCompanyId { get; set; }
}
[Table("Contract", Schema = "Employee")]
public class Contract : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public ContractTemplate contractTemplate { get; set; }
[Column(TypeName = "decimal(18,2)")]
public decimal? Salary { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public bool? IsRenewed { get; set; }
public int? IsTerminated { get; set; }
public DateTime? TerminationDate { get; set; }
public string TerminationReason { get; set; }
public long? ComplianceStatusCode { get; set; }
public Guid? ContractReferId { get; set; }
[StringLength(50)]
public string Status { get; set; }
public int? RemeningDays { get; set; }
[StringLength(200)]
public string PlaceOfAgreement { get; set; }
public DateTime? SEAEeffectiveFrom { get; set; }
[StringLength(200)]
public string PeriodOfEmployment { get; set; }
public DateTime? ExpiryOfSEA { get; set; }
public DateTime? ExpiryOfSEAAsPerMLC { get; set; }
[StringLength(200)]
public string ApplicableCBA { get; set; }
[StringLength(200)]
public string BasicWages { get; set; }
[StringLength(200)]
public string FixedOT { get; set; }
[StringLength(200)]
public string LeaveWages { get; set; }
[StringLength(200)]
public string TradeAllowance { get; set; }
[StringLength(200)]
public string SMB_SA { get; set; }
[StringLength(200)]
public string Total { get; set; }
[StringLength(200)]
public string AdditionalComputationFields { get; set; }
public Guid? VesselId { get; set; }
public Guid? VesselTypeId { get; set; }
[StringLength(100)]
public string PortOfregistry { get; set; }
[StringLength(50)]
public string Flag { get; set; }
[StringLength(50)]
public string IMONO { get; set; }
[StringLength(200)]
public string ShipownerRepresentativeAddress { get; set; }
public Guid? VesselAssignmentId { get; set; }
public Guid? SEAeffectiveId { get; set; }
[StringLength(50)]
public string ApprovalStatus { get; set; }
[StringLength(500)]
public string Remarks { get; set; }
//public Guid? DocumentId { get; set; } // added object of documwnt table
//[StringLength(200)]
public Document document { get; set; }
public string VesselOwnerSignStatus { get; set; }
[StringLength(20)]
public string CrewOTP { get; set; }
[StringLength(200)]
public string CrewSignStatus { get; set; }
public string VesselOwnerSignImage { get; set; }
public string CrewSignImage { get; set; }
}
[Table("ContractTemplate", Schema = "Employee")]
public class ContractTemplate : AuditableEntity
{
public string TemplateName { get; set; }
public string TemplateDescription { get; set; }
}
#endregion
[Table("CrewEmployeeColumnVisibility", Schema = "Crew")]
public class CrewEmployeeColumnVisibility : AuditableEntity
{
public string ColumnName { get; set; }
public bool IsVisible { get; set; }
}
[Table("ScenarioApprovalLevels", Schema = "Crew")]
public class ScenarioApprovalLevel : AuditableEntity
{ //TODO: need to import Approvals.Basic
//TODO: need to import Approvals.Levels
public Guid? ApprovalsBasicId { get; set; } // create object of Approvals.Basic
public Guid? ApprovalsLevelsId { get; set; } //create object of Approvals.Levels
// public Guid? ContractId { get; set; } // added object of contact table
public Contract contract { get; set; }
public int? ApprovalLevel { get; set; }
[StringLength(30)]
public string ApprovalStatus { get; set; }
public Guid? ApprovalConnectionId { get; set; }
//TODO: need to import Master.Modules
public Guid? ModuleUId { get; set; } //create object of Master.Modules
public DateTimeOffset? ApprovedOn { get; set; }
public DateTimeOffset? RejectedOn { get; set; }
public Guid? ApprovedUserId { get; set; }
public int? ApprovalVersion { get; set; }
//TODO: need to import Master.UserRole
public Guid? ApprovedUserGroupId { get; set; } //create object of Master.UserRole
//TODO: need to import Master.Designation
public Guid? ApprovedDesignationId { get; set; } //create object of Master.Designation
[StringLength(500)]
public string Remarks { get; set; }
public string Comments { get; set; }
[StringLength(500)]
public string SignatureImageName { get; set; }
public string SignatureImage { get; set; }
public int? OrderNumber { get; set; }
public int? OriginalApprovalVersion { get; set; }
[StringLength(50)]
public string Rights { get; set; }
}
[Table("VesselAssignment", Schema = "Crew")]
public class VesselAssignment : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
//TODO: need to import Vessel.VesselInfo
public Guid? VesselId { get; set; } // need create object of Vessel.Info
[StringLength(200)]
public string PlaceOfAgreement { get; set; }
public DateTime? ExpiryofSEA { get; set; }
public DateTime? ExpiryAsPerMLC { get; set; }
//TODO: need to import Master.SeaEffective
public Guid? SEAeffectiveId { get; set; } // need create object of Master.SeaEffective
public int? PeriodofEmploymentMonths { get; set; }
public int? PeriodofEmploymentDays { get; set; }
[StringLength(100)]
public string ApplicableCBA { get; set; }
//TODO: need to import Master.Designation
public Guid? PositionOrRankId { get; set; } // need create object of Master.Designation
public Guid? AssignmentStatus { get; set; }
//public Guid? SupervisorId { get; set; } //get Id from Employee.officialInfo
public DateTime? LastUpdatedDateTime { get; set; }
public DateTime? VesselAssignmentStartDate { get; set; }
public DateTime? VesselAssignmentEndDate { get; set; }
public DateTime? SignOn { get; set; }
[StringLength(250)]
public string BToD { get; set; }
public DateTime? SignOff { get; set; }
[StringLength(250)]
public string EToD { get; set; }
[StringLength(250)]
public string ReliefDue { get; set; }
[StringLength(250)]
public string OriginalReliefDue { get; set; }
public string SignOnRemarks { get; set; }
//TODO: need to import Master.Port
public Guid? SignOnPortId { get; set; } // need create object of Master.Port
public string SignOnReason { get; set; }
public string SignOffReason { get; set; }
public string TransferAndPromotion { get; set; }
[StringLength(200)]
public string Onboard { get; set; }
[StringLength(200)]
public string VesselCabin { get; set; }
public Guid? PlannedVesselId { get; set; } // need create object of Vessel.VesselInfo
public Guid? ManagerId { get; set; } //supervisorId ,crewId ,MAnagerId// need create object of Employee.OfficialInfo
//TODO: need to import Master.SignOnRemarks
//TODO: need to import Master.SignOffRemarks
public Guid? SignOnRemarksId { get; set; } // need create object of Master.SignOnRemarks
public Guid? SignOffRemarksId { get; set; }// need create object of Master.SignOffRemarks
public Guid? SignOffPortId { get; set; } // need create object of Master.Port
public Guid? PlaceOfAgreementCountry { get; set; }
}
//not using rightnow
//[Table("Announcements", Schema = "Employee")]
//public class Announcement : AuditableEntity
//{
// public string NotificationTitle { get; set; }
// [StringLength(500)]
// public string NotificationDescription { get; set; }
// [StringLength(20)]
// public string NotificationRead { get; set; }
// public DateTimeOffset? NotificationCreatedOn { get; set; }
// public OfficialInfo officialInfo { get; set; }
//}
// using this while calling this SP: FetchEmployeeHomePageDetails
[Table("CalendarEventDetails", Schema = "Employee")]
public class CalendarEventDetail : AuditableEntity
{
[StringLength(10)]
public string Priority { get; set; }
[StringLength(200)]
public string Description { get; set; }
public TimeSpan? Time { get; set; }
public OfficialInfo officialInfo { get; set; }
}
// using this while calling this SP: FetchEmployeeHomePageDetails
[Table("CalendarEvents", Schema = "Employee")]
public class CalendarEvent : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public DateTime? CalendarEventDate { get; set; }
}
[Table("Dependants", Schema = "Employee")]
public class Dependant : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public string DependantName { get; set; }
[StringLength(20)]
public string DependantGender { get; set; }
public DateTime? DependantDateOfBirth { get; set; }
[StringLength(50)]
public string NoOfDependants { get; set; }
public int? NoOfShares { get; set; }
[StringLength(20)]
public string Dependantrelation { get; set; }
public bool? IsNextOfKin { get; set; }
//TODO: need to import Master.Country
public Guid? CountryCodeId { get; set; }
}
[Table("EmployeeCodeGenerator", Schema = "Employee")]
public class EmployeeCodeGenerator : AuditableEntity
{
public Guid? CompanyId { get; set; }
public int? EmployeeNumber { get; set; }
public OfficialInfo officialInfo { get; set; }
}
[Table("EmployeeCodeSerialNoTrack", Schema = "Employee")]
public class EmployeeCodeSerialNoTrack : AuditableEntity
{
public Guid? EmployeeSerialNoCompanyId { get; set; }
public int? EmployeeLastSerialNo { get; set; }
//public Guid? EmployeeTypeId { get; set; }
// public int? EmployeeTypeCode { get; set; }
// public EmployeeType employeeTypeCode { get; set; }
}
[Table("EmployeeOTP", Schema = "Employee")]
public class EmployeeOTP : AuditableEntity
{
public string MobileNumber { get; set; }
[StringLength(50)]
public string EmailId { get; set; }
[StringLength(8)]
public string OtpValue { get; set; }
public DateTimeOffset? OtpExpiryOn { get; set; }
public int? TempId { get; set; }
[StringLength(20)]
public string OtpStatus { get; set; }
public OfficialInfo officialInfo { get; set; }
public string ProcessName { get; set; }
}
[Table("EmployeePasswordHistory", Schema = "Employee")]
public class EmployeePasswordHistory : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public string PassKey { get; set; }
}
[Table("EmployeeSecrets", Schema = "Employee")]
public class EmployeeSecret : AuditableEntity
{
public string UserName { get; set; }
[StringLength(200)]
public string PassKey { get; set; }
[StringLength(20)]
public string EmployeeCredentialStatus { get; set; }
public OfficialInfo officialInfo { get; set; }
}
[Table("FamilyDetails", Schema = "Employee")]
public class FamilyDetail : AuditableEntity
{
public OfficialInfo officialInfo { get; set; }
public Guid? FamilyStatusMasterId { get; set; }
[StringLength(50)]
public string SpouseName { get; set; }
public DateTime? SpouseDateOfBirth { get; set; }
public int? NoOfDependants { get; set; }
}
[Table("Notifications", Schema = "Employee")]
public class Notification : AuditableEntity
{
public string NotificationTitle { get; set; }
[StringLength(500)]
public string NotificationDescription { get; set; }
[StringLength(20)]
public string NotificationRead { get; set; }
public OfficialInfo officialInfo { get; set; }
}
// using this while calling this SP: FetchEmployeeHomePageDetails
[Table("ToDo", Schema = "Employee")]
public class ToDo : AuditableEntity
{
public string TodoTitle { get; set; }
[StringLength(500)]
public string TodoDescription { get; set; }
[StringLength(20)]
public string TodoCompleted { get; set; }
public OfficialInfo officialInfo { get; set; }
}
}
Editor is loading...
Leave a Comment