using GreenTree.Strohrmann.ERP.Core.Domain.Business;
using GreenTree.Strohrmann.ERP.Web.Models.Shared;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;

namespace GreenTree.Strohrmann.ERP.Web.Models.Business
{
    public class SupplierModel : TrackingModel
    {
        #region Properties

        /// <summary>
        /// Supplier Id
        /// </summary>
        [Display(Name = "ID")]
        public int Id { get; set; }

        /// <summary>
        /// Supplier name
        /// </summary>
        [Display(Name = "Name")]
        public string Name { get; set; }

        /// <summary>
        /// Supplier description
        /// </summary>
        [Display(Name = "Beschreibung")]
        public string Description { get; set; }

        /// <summary>
        /// Supplier address
        /// </summary>
        [Display(Name = "Adresse")]
        public string Address { get; set; }

        /// <summary>
        /// Supplier town
        /// </summary>
        [Display(Name = "Stadt")]
        public string Town { get; set; }

        /// <summary>
        /// Supplier zip code
        /// </summary>
        [Display(Name = "Postleitzahl")]
        public string ZipCode { get; set; }

        /// <summary>
        /// Supplier country
        /// </summary>
        [Display(Name = "Land")]
        public string Country { get; set; }

        /// <summary>
        /// Supplier contact phone 1
        /// </summary>
        [Display(Name = "Telefon 1")]
        public string PhoneFirst { get; set; }

        /// <summary>
        /// Supplier contact phone 2
        /// </summary>
        [Display(Name = "Telefon 2")]
        public string PhoneSecond { get; set; }

        /// <summary>
        /// Supplier contact mail 1
        /// </summary>
        [Display(Name = "Mail-Adresse 1")]
        public string MailFirst { get; set; }

        /// <summary>
        /// Supplier contact mail 2
        /// </summary>
        [Display(Name = "Mail-Adresse 2")]
        public string MailSecond { get; set; }

        /// <summary>
        /// Supplier custom comment
        /// </summary>
        [Display(Name = "Kommentar")]
        public string Comment { get; set; }

        #endregion

        #region Ctor

        /// <summary>
        /// Initializes a new instance of the SupplierModel class
        /// </summary>
        public SupplierModel() {  }

        /// <summary>
        /// Initializes a new instance of the SupplierModel class
        /// </summary>
        public SupplierModel(Supplier supplier)
            : base(supplier)
        {
            if (supplier == null) return;

            Id = supplier.Id;
            Name = supplier.Name;
            Description = supplier.Description;
            Address = supplier.Address;
            Town = supplier.Town;
            ZipCode = supplier.ZipCode;
            Country = supplier.Country;
            PhoneFirst = supplier.PhoneFirst;
            PhoneSecond = supplier.PhoneSecond;
            MailFirst = supplier.MailFirst;
            MailSecond = supplier.MailSecond;
            Comment = supplier.Comment;
        }

        #endregion
    }
}
