namespace LinqPractise
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity.Spatial;

    [Table("Core.SellingSize")]
    public partial class SellingSize
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public SellingSize()
        {
            CountrySellingPriceExceptions = new HashSet<CountrySellingPriceException>();
            RegionSellingPrices = new HashSet<RegionSellingPrice>();
            SellingSizeExclusiveCountries = new HashSet<SellingSizeExclusiveCountry>();
        }

        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int PriceMappingId { get; set; }

        public decimal SellingSizeValue { get; set; }

        public int SellingSizeUnitId { get; set; }

        public int SellingSizeTypeId { get; set; }

        public bool IsPrimary { get; set; }

        public Guid Rowguid { get; set; }

        public int? ShippingBandId { get; set; }

        [StringLength(1000)]
        public string AssemblyInstructions { get; set; }

        public int? PresetId { get; set; }

        public DateTime? FuturePriceEffectiveDate { get; set; }

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

        public int? FuturePresetId { get; set; }

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

        [Column(TypeName = "timestamp")]
        [MaxLength(8)]
        [Timestamp]
        public byte[] RowVersion { get; set; }

        [Required]
        [StringLength(50)]
        public string SellingSizeCode { get; set; }

        public bool IsTrialSize { get; set; }

        public DateTime? CreatedDate { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<CountrySellingPriceException> CountrySellingPriceExceptions { get; set; }

        public virtual PriceMapping PriceMapping { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<RegionSellingPrice> RegionSellingPrices { get; set; }

        public virtual SellingPricePreset SellingPricePreset { get; set; }

        public virtual SellingPricePreset SellingPricePreset1 { get; set; }

        public virtual SellingSizeType SellingSizeType { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<SellingSizeExclusiveCountry> SellingSizeExclusiveCountries { get; set; }
    }
}
