using _0_Framework.Application; using _0_Framework.Domain; using AccountManagement.Domain.SubAccountRoleAgg; namespace AccountManagement.Domain.SubAccountAgg { public class SubAccount : EntityBase { public string FullName { get { return $"{FName} {LName}"; } } public string PhoneNumber { get; private set; } public string NationalCode { get; private set; } public string FName { get; private set; } public string LName { get; private set; } public long SubAccountRoleId { get; private set; } public SubAccountRole SubAccountRole { get; private set; } public long AccountId { get; private set; } public string Username { get; private set; } public string Password { get; private set; } public string VerifyCode { get; private set; } public IsActive IsActive { get; private set; } public string ProfilePhoto { get; private set; } public SubAccount(long accountId, long subAccountRoleId, string nationalCode, string fName, string lName, string phoneNumber, string username, string password,string profilePhoto) { PhoneNumber = phoneNumber; AccountId = accountId; Username = username; Password = password; FName = fName; LName = lName; NationalCode = nationalCode; ProfilePhoto = profilePhoto; IsActive = IsActive.True; SubAccountRoleId = subAccountRoleId; } public void ChangePassword(string newPassword) { Password = newPassword; } public void ChangePhoneNumber(string newPhoneNumber) { PhoneNumber = newPhoneNumber; } public void Edit(long subAccountRoleId, string nationalCode, string fName, string lName, string profilePhoto) { FName = fName; LName = lName; NationalCode = nationalCode; ProfilePhoto = profilePhoto; SubAccountRoleId = subAccountRoleId; } public void SetVerifyCode(string verifyCode) { VerifyCode = verifyCode; } public void Deactivate() { IsActive = IsActive.False; } public void Activate() { IsActive = IsActive.True; } public void AssignRole(long subAccountRoleId) { SubAccountRoleId = subAccountRoleId; } } }