namespace Netina.Domain.Entities.Users;

[AdaptTwoWays("[name]SDto", IgnoreAttributes = new[] { typeof(AdaptIgnoreAttribute) }, MapType = MapType.Map | MapType.MapToTarget)]
[AdaptTo("[name]SDto", IgnoreAttributes = new[] { typeof(AdaptIgnoreAttribute) }, MapType = MapType.Projection)]
[GenerateMapper]
public partial class UserAddress : ApiEntity
{
    public UserAddress()
    {
        
    }

    public UserAddress(string address, string postalCode, string receiverFullName, string receiverPhoneNumber,
        float locationLat, float locationLong, string province, string city, string plaque, string buildingUnit,
        Guid userId)
    {
        Address = address;
        PostalCode = postalCode;
        ReceiverFullName = receiverFullName;
        ReceiverPhoneNumber = receiverPhoneNumber;
        LocationLat = locationLat;
        LocationLong = locationLong;
        Province = province;
        City = city;
        Plaque = plaque;
        BuildingUnit = buildingUnit;
        UserId = userId;
    }

    public string Address { get; internal set; } = string.Empty;
    public string PostalCode { get; internal set; } = string.Empty;
    public string ReceiverFullName { get; internal set; } = string.Empty;
    public string ReceiverPhoneNumber { get; internal set; } = string.Empty;
    public float LocationLat { get; internal set; }
    public float LocationLong { get; internal set; }
    public string Province { get; internal set; } = string.Empty;
    public string City { get; internal set; } = string.Empty;
    public string Plaque { get; internal set; } = string.Empty;
    public string BuildingUnit { get; internal set; } = string.Empty;

    public Guid UserId { get; internal set; }
    public ApplicationUser? User { get; internal set; }
}