using Core.Abstractions.DomainObjects;

namespace WeatherForecast.Models.Abstractions {

  /// <summary>
  /// 
  /// </summary>
  /// <typeparam name="T"></typeparam>
  public abstract class AddressSectionModelBase<T> : PageSectionModelBase<T> {

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel FirstName { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel LastName { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel Address { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel Address2 { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel Country { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel State { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel City { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public FormItemModel Zip { get; set; }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="addressSection"></param>
    public AddressSectionModelBase(AddressSectionBase<T> addressSection) : base(addressSection) {
      FirstName = new FormItemModel(addressSection.FirstName);
      LastName = new FormItemModel(addressSection.LastName);
      Address = new FormItemModel(addressSection.Address);
      Address2 = new FormItemModel(addressSection.Address2);
      Country = new FormItemModel(addressSection.FirstName);
      State = new FormItemModel(addressSection.State);
      City = new FormItemModel(addressSection.City);
      Zip = new FormItemModel(addressSection.Zip);
    }
  }
}
