Files
2026-03-17 09:53:09 -05:00

95 lines
3.3 KiB
C#

using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.Library.Internal.IncentiveApiModels.Enums;
using LCU.API.Internal.Operations.IncentiveApiLib.Services;
using LCU.API.Internal.Operations.IncentiveApi.Models.Constants;
namespace LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
public class NewCheckingAccountActivity : IExternalActivity
{
public long ActivityNbr { get; set; }
public DateTime ActivityDateTime { get; set; }
public long ResponsiblePersonNbr { get; set; }
public string ActivityTypeCode { get; set; }
public long SubjectAccountNbr { get; set; }
public string MinorAccountType { get; set; }
public string AssociateFirst { get; set; }
public string AssociateMiddleInit { get; set; }
public string AssociateLast { get; set; }
public string TaxPersonNbr { get; set; }
public string TaxOrgNbr { get; set; }
public string CurrentAccountStatus { get; set; }
public long BranchOrgNbr { get; set; }
public string BranchOrgName { get; set; }
public string EmployeeEmail { get; set; }
public DateTime AccountContractDate { get; set; }
public string TaxOrgName { get; set; }
public string TaxPersonName { get; set; }
public double? OriginalBalance { get; set; }
public string TaxPersonPhoneNumbers { get; set; }
public string TaxPersonEmailAddresses { get; set; }
public Activity MapToActivity()
{
return new Activity()
{
Product = GetProductType(),
Type = ActivityType.Sale,
SourceSystem = GetSystemType(),
SourceId = GetSourceId(),
SourceCreated = AccountContractDate,
Detail = new ActivityDetail()
{
MemberName = TaxOrgName ?? TaxPersonName,
DnaPersonNbr = ResponsiblePersonNbr.ToString(),
BranchOrgNbr = BranchOrgNbr.ToString(),
BranchOrgName = BranchOrgName,
SubjectPersonNbr = TaxPersonNbr,
SubjectOrgNbr = TaxOrgNbr,
AccountNumber = SubjectAccountNbr.ToString(),
AccountStatus = CurrentAccountStatus,
AccountBalance = OriginalBalance
},
MetaData = DataParsingService.MapActivityMetaData(new List<string> { TaxPersonPhoneNumbers, TaxPersonEmailAddresses }),
DepartmentId = -1,
EmployeeId = null,
EmployeeEmail = StandardizedEmail(),
Accepted = ActivityDateTime.Date.AddHours(12),
State = ActivityState.Created
};
}
public ActivityType GetActivityType()
{
return ActivityType.Sale;
}
public string GetSourceId()
{
return ActivityNbr.ToString();
}
public Product GetProductType()
{
return Product.NewChecking;
}
public SystemType GetSystemType()
{
if (
!string.IsNullOrWhiteSpace(EmployeeEmail)
&& string.Equals(EmployeeEmail, SystemAppUserConstants.DigitalBankingEmail, StringComparison.CurrentCultureIgnoreCase)
)
{
return SystemType.DigitalBanking;
}
return SystemType.Dna;
}
public string StandardizedEmail()
{
return !string.IsNullOrWhiteSpace(EmployeeEmail) ? EmployeeEmail.ToUpper() : EmployeeEmail;
}
}