sumatube/SumaTube.Domain/Entities/UserPlan/PersonUser.cs
2025-04-20 23:33:46 -03:00

56 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SumaTube.Domain.ValueObjects;
namespace SumaTube.Domain.Entities.UserPlan
{
public class PersonUser
{
public PersonUser(string id, Username username, Name name, Email email,
DateChanged dateChanged, bool isProfileCompleted, int countryId,
int businessAreaId, string desiredName, DateTime createdAt,
UserPayment plano = null, List<UserPayment> pastPlans = null)
{
Id = id ?? Guid.NewGuid().ToString("N");
Username = username;
Name = name;
Email = email;
DateChanged = dateChanged;
IsProfileCompleted = isProfileCompleted;
CountryId = countryId;
BusinessAreaId = businessAreaId;
DesiredName = desiredName;
CreatedAt = createdAt;
Plano = plano;
PastPlans = pastPlans ?? new List<UserPayment>();
}
public Id Id { get; private set; }
public Username Username { get; private set; }
public Name Name { get; private set; }
public string FirstName => Name.FirstName;
public string LastName => Name.LastName;
public Email Email { get; private set; }
public DateChanged DateChanged { get; private set; }
public bool IsProfileCompleted { get; private set; }
public int CountryId { get; private set; }
public int BusinessAreaId { get; private set; }
public string DesiredName { get; private set; }
public DateTime CreatedAt { get; private set; }
public UserPayment? Plano { get; private set; }
public List<UserPayment>? PastPlans { get; private set; }
public PersonUser AddPlano(UserPayment plano)
{
if (plano == null) throw new ArgumentNullException(nameof(plano));
PastPlans.Add(plano);
return this;
}
}
}