using System.ComponentModel.DataAnnotations;

namespace MemberCenter.Web.Models.Profile;

public sealed class AddressFormViewModel
{
    public Guid? Id { get; set; }

    [Required]
    [StringLength(100)]
    public string Label { get; set; } = "home";

    [Required]
    [StringLength(100)]
    public string RecipientName { get; set; } = string.Empty;

    [Required]
    [StringLength(50)]
    public string RecipientPhone { get; set; } = string.Empty;

    [Required]
    [StringLength(2, MinimumLength = 2)]
    public string CountryCode { get; set; } = "TW";

    [StringLength(20)]
    public string? PostalCode { get; set; }

    [StringLength(100)]
    public string? StateRegion { get; set; }

    [StringLength(100)]
    public string? City { get; set; }

    [StringLength(100)]
    public string? District { get; set; }

    [Required]
    [StringLength(255)]
    public string AddressLine1 { get; set; } = string.Empty;

    [StringLength(255)]
    public string? AddressLine2 { get; set; }

    [StringLength(200)]
    public string? CompanyName { get; set; }

    public bool IsDefault { get; set; }

    public string? AddressMetaJson { get; set; }
}
