package com.fjs.scenic.cyt.response;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="GetProductByOTAResponseBody", propOrder={"count", "productInfos"})
public class GetProductByOTAResponseBody extends ResponseBody
{

  @XmlElement(required=true)
  protected String count;

  @XmlElement(required=true)
  protected ProductInfos productInfos;

  public GetProductByOTAResponseBody()
  {
    this.count = "";
    this.productInfos = new ProductInfos();
  }

  public String getCount()
  {
    return this.count;
  }

  public void setCount(String value)
  {
    this.count = value;
  }

  public ProductInfos getProductInfos()
  {
    return this.productInfos;
  }

  public void setProductInfos(ProductInfos value)
  {
    this.productInfos = value;
  }

  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name="", propOrder={"productInfo"})
  public static class ProductInfos
  {
    protected List<ProductInfo> productInfo;

    public ProductInfos()
    {
      this.productInfo = new ArrayList();
    }

    public List<ProductInfo> getProductInfo()
    {
      if (this.productInfo == null) {
        this.productInfo = new ArrayList();
      }
      return this.productInfo;
    }

    public void setProductInfo(List<ProductInfo> productInfo)
    {
      this.productInfo = productInfo;
    }

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name="", propOrder={"baseInfo", "bookConfig", "priceConfig", "productDescription", "otherConfig","sort","isstock","szgardengatecode","special"})
    public static class ProductInfo
    {

      @XmlElement(required=true)
      protected BaseInfo baseInfo;

      @XmlElement(required=true)
      protected BookConfig bookConfig;

      @XmlElement(required=true)
      protected PriceConfig priceConfig;

      @XmlElement(required=true)
      protected ProductDescription productDescription;

      @XmlElement(required=true)
      protected OtherConfig otherConfig;
      @XmlElement(required=false)
      private Integer sort;
      @XmlElement(required=false)
      private Integer isstock; // 是否参与库存  0否  1是
      @XmlElement(required=false)
      private String szgardengatecode; // 产品类别
      @XmlElement(required=false)
      private Integer special; // 产品特殊类别
      
      public ProductInfo()
      {
        this.baseInfo = new BaseInfo();
        this.bookConfig = new BookConfig();
        this.priceConfig = new PriceConfig();
        this.productDescription = new ProductDescription();
        this.otherConfig = new OtherConfig();
        this.sort = null;
      }

      public Integer getSort() {
		return sort;
      }

      public void setSort(Integer sort) {
		this.sort = sort;
	  }

      public Integer getIsstock() {
		return isstock;
	}

	public void setIsstock(Integer isstock) {
		this.isstock = isstock;
	}

	public String getSzgardengatecode() {
		return szgardengatecode;
	}

	public void setSzgardengatecode(String szgardengatecode) {
		this.szgardengatecode = szgardengatecode;
	}

	public Integer getSpecial() {
		return special;
	}

	public void setSpecial(Integer special) {
		this.special = special;
	}

	public BaseInfo getBaseInfo()
      {
        return this.baseInfo;
      }

      public void setBaseInfo(BaseInfo value)
      {
        this.baseInfo = value;
      }

      public BookConfig getBookConfig()
      {
        return this.bookConfig;
      }

      public void setBookConfig(BookConfig value)
      {
        this.bookConfig = value;
      }

      public PriceConfig getPriceConfig()
      {
        return this.priceConfig;
      }

      public void setPriceConfig(PriceConfig value)
      {
        this.priceConfig = value;
      }

      public ProductDescription getProductDescription()
      {
        return this.productDescription;
      }

      public void setProductDescription(ProductDescription value)
      {
        this.productDescription = value;
      }

      public OtherConfig getOtherConfig()
      {
        return this.otherConfig;
      }

      public void setOtherConfig(OtherConfig value)
      {
        this.otherConfig = value;
      }

      @XmlAccessorType(XmlAccessType.FIELD)
      @XmlType(name="", propOrder={"remind", "refundOption", "realnameRules"})
      public static class ProductDescription
      {

        @XmlElement(required=true)
        protected String remind;

        @XmlElement(required=true)
        protected RefundOption refundOption;

        @XmlElement(required=true)
        protected RealnameRules realnameRules;

        public ProductDescription()
        {
          this.remind = "";
          this.refundOption = new RefundOption();
          this.realnameRules = new RealnameRules();
        }

        public String getRemind()
        {
          return this.remind;
        }

        public void setRemind(String value)
        {
          this.remind = value;
        }

        public RefundOption getRefundOption()
        {
          return this.refundOption;
        }

        public void setRefundOption(RefundOption value)
        {
          this.refundOption = value;
        }

        public RealnameRules getRealnameRules() {
			return realnameRules;
		}

		public void setRealnameRules(RealnameRules realnameRules) {
			this.realnameRules = realnameRules;
		}

		@XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name="", propOrder={"canRefund",
                "canOverdueRefund",
                "refundApplyTimeBeforeValidEndDay",
                "refundCharge",
                "refundChargeType",
                "refundInfo"})
        public static class RefundOption
        {

          @XmlElement(required=true)
          protected String canRefund;

          @XmlElement(required=true)
          protected String canOverdueRefund;

          @XmlElement(required=true)
          protected String refundApplyTimeBeforeValidEndDay;

          @XmlElement(required=true)
          protected String refundCharge;

          @XmlElement(required=true)
          protected String refundChargeType;

          @XmlElement(required=true)
          protected String refundInfo;

          public RefundOption()
          {
            this.canRefund = "";
            this.canOverdueRefund = "";
            this.refundApplyTimeBeforeValidEndDay = "";
            this.refundCharge = "";
            this.refundChargeType = "";
            this.refundInfo = "";
          }

          public String getCanRefund()
          {
            return this.canRefund;
          }

          public void setCanRefund(String value)
          {
            this.canRefund = value;
          }

          public String getCanOverdueRefund() {
            return this.canOverdueRefund;
          }

          public void setCanOverdueRefund(String canOverdueRefund) {
            this.canOverdueRefund = canOverdueRefund;
          }

          public String getRefundApplyTimeBeforeValidEndDay()
          {
            return this.refundApplyTimeBeforeValidEndDay;
          }

          public void setRefundApplyTimeBeforeValidEndDay(String value)
          {
            this.refundApplyTimeBeforeValidEndDay = value;
          }

          public String getRefundCharge()
          {
            return this.refundCharge;
          }

          public void setRefundCharge(String value)
          {
            this.refundCharge = value;
          }

          public String getRefundChargeType() {
            return this.refundChargeType;
          }

          public void setRefundChargeType(String refundChargeType) {
            this.refundChargeType = refundChargeType;
          }

          public String getRefundInfo()
          {
            return this.refundInfo;
          }

          public void setRefundInfo(String value)
          {
            this.refundInfo = value;
          }
        }
        
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name="", propOrder={"sexrestrict", "datanum", "ballots", "agestart", "ageend", "restrictarea","isuse" ,"areacode"})
        public static class RealnameRules
        {
        	
        	@XmlElement(required=true)
        	protected String sexrestrict;
        	
        	@XmlElement(required=true)
        	protected String datanum;
        	
        	@XmlElement(required=true)
        	protected String ballots;
        	
        	@XmlElement(required=true)
        	protected String agestart;
        	
        	@XmlElement(required=true)
        	protected String ageend;
        	
        	@XmlElement(required=true)
        	protected String restrictarea;
        	
        	@XmlElement(required=true)
        	protected String isuse;
        	
        	@XmlElement(required=true)
        	protected String areacode;
        	
        	public RealnameRules()
        	{
        		this.sexrestrict = "";
        		this.datanum = "";
        		this.ballots = "";
        		this.agestart = "";
        		this.ageend = "";
        		this.restrictarea = "";
        		this.isuse = "";
        		this.areacode = "";
        	}

			public String getSexrestrict() {
				return sexrestrict;
			}

			public void setSexrestrict(String sexrestrict) {
				this.sexrestrict = sexrestrict;
			}

			public String getDatanum() {
				return datanum;
			}

			public void setDatanum(String datanum) {
				this.datanum = datanum;
			}

			public String getBallots() {
				return ballots;
			}

			public void setBallots(String ballots) {
				this.ballots = ballots;
			}

			public String getAgestart() {
				return agestart;
			}

			public void setAgestart(String agestart) {
				this.agestart = agestart;
			}

			public String getAgeend() {
				return ageend;
			}

			public void setAgeend(String ageend) {
				this.ageend = ageend;
			}

			public String getRestrictarea() {
				return restrictarea;
			}

			public void setRestrictarea(String restrictarea) {
				this.restrictarea = restrictarea;
			}

			public String getIsuse() {
				return isuse;
			}

			public void setIsuse(String isuse) {
				this.isuse = isuse;
			}

			public String getAreacode() {
				return areacode;
			}

			public void setAreacode(String areacode) {
				this.areacode = areacode;
			}
        }
      }

      @XmlAccessorType(XmlAccessType.FIELD)
      @XmlType(name="", propOrder={"validType", "daysAfterUseDateValid", "calendarPrices"})
      public static class PriceConfig
      {

        @XmlElement(required=true)
        protected String validType;

        @XmlElement(required=true)
        protected String daysAfterUseDateValid;
        protected CalendarPrices calendarPrices;

        public PriceConfig()
        {
          this.validType = "";
          this.daysAfterUseDateValid = "";
          this.calendarPrices = new CalendarPrices();
        }

        public String getValidType()
        {
          return this.validType;
        }

        public void setValidType(String value)
        {
          this.validType = value;
        }

        public String getDaysAfterUseDateValid()
        {
          return this.daysAfterUseDateValid;
        }

        public void setDaysAfterUseDateValid(String value)
        {
          this.daysAfterUseDateValid = value;
        }

        public CalendarPrices getCalendarPrices()
        {
          return this.calendarPrices;
        }

        public void setCalendarPrices(CalendarPrices value)
        {
          this.calendarPrices = value;
        }

        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name="", propOrder={"calendarPrice"})
        public static class CalendarPrices
        {

          @XmlElement(required=true)
          protected List<CalendarPrice> calendarPrice;

          public CalendarPrices()
          {
            this.calendarPrice = new ArrayList();
          }

          public List<CalendarPrice> getCalendarPrice()
          {
            if (this.calendarPrice == null) {
              this.calendarPrice = new ArrayList();
            }
            return this.calendarPrice;
          }

          public void setCalendarPrice(List<CalendarPrice> calendarPrice)
          {
            this.calendarPrice = calendarPrice;
          }

          @XmlAccessorType(XmlAccessType.FIELD)
          @XmlType(name="", propOrder={"useDate", "marketPrice", "sellPrice", "sellstock"})
          public static class CalendarPrice
          {

            @XmlElement(required=true)
            protected String useDate;

            @XmlElement(required=true)
            protected String marketPrice;

            @XmlElement(required=true)
            protected String sellPrice;

            @XmlElement(required=true)
            protected String sellstock;

            public CalendarPrice()
            {
              this.useDate = "";
              this.marketPrice = "";
              this.sellPrice = "";
              this.sellstock = "";
            }

            public String getUseDate()
            {
              return this.useDate;
            }

            public void setUseDate(String value)
            {
              this.useDate = value;
            }

            public String getMarketPrice()
            {
              return this.marketPrice;
            }

            public void setMarketPrice(String value)
            {
              this.marketPrice = value;
            }

            public String getSellPrice()
            {
              return this.sellPrice;
            }

            public void setSellPrice(String value)
            {
              this.sellPrice = value;
            }

            public String getSellstock()
            {
              return this.sellstock;
            }

            public void setSellstock(String value)
            {
              this.sellstock = value;
            }
          }
        }
      }

      @XmlAccessorType(XmlAccessType.FIELD)
      @XmlType(name="", propOrder={"smsTemplet", "eticketType"})
      public static class OtherConfig
      {

        @XmlElement(required=true)
        protected String smsTemplet;

        @XmlElement(required=true)
        protected String eticketType;

        public OtherConfig()
        {
          this.smsTemplet = "";
          this.eticketType = "";
        }

        public String getSmsTemplet()
        {
          return this.smsTemplet;
        }

        public void setSmsTemplet(String value)
        {
          this.smsTemplet = value;
        }

        public String getEticketType()
        {
          return this.eticketType;
        }

        public void setEticketType(String value)
        {
          this.eticketType = value;
        }
      }

      @XmlAccessorType(XmlAccessType.FIELD)
      @XmlType(name="", propOrder={"paymentType", "advanceOption", "autoCancelTime", "bookPersonType", "visitPersonRequiredForQuantity"})
      public static class BookConfig
      {

        @XmlElement(required=true)
        protected String paymentType;

        @XmlElement(required=true)
        protected AdvanceOption advanceOption;

        @XmlElement(required=true)
        protected String autoCancelTime;

        @XmlElement(required=true)
        protected String bookPersonType;

        @XmlElement(required=true)
        protected String visitPersonRequiredForQuantity;

        public BookConfig()
        {
          this.paymentType = "";
          this.advanceOption = new AdvanceOption();
          this.autoCancelTime = "";
          this.bookPersonType = "";
          this.visitPersonRequiredForQuantity = "";
        }

        public String getPaymentType()
        {
          return this.paymentType;
        }

        public void setPaymentType(String value)
        {
          this.paymentType = value;
        }

        public AdvanceOption getAdvanceOption()
        {
          return this.advanceOption;
        }

        public void setAdvanceOption(AdvanceOption value)
        {
          this.advanceOption = value;
        }

        public String getAutoCancelTime()
        {
          return this.autoCancelTime;
        }

        public void setAutoCancelTime(String value)
        {
          this.autoCancelTime = value;
        }

        public String getBookPersonType()
        {
          return this.bookPersonType;
        }

        public void setBookPersonType(String value)
        {
          this.bookPersonType = value;
        }

        public String getVisitPersonRequiredForQuantity()
        {
          return this.visitPersonRequiredForQuantity;
        }

        public void setVisitPersonRequiredForQuantity(String value)
        {
          this.visitPersonRequiredForQuantity = value;
        }

        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name="", propOrder={"bookAdvanceDay", "bookAdvanceTime", "useAdvanceHour"})
        public static class AdvanceOption
        {

          @XmlElement(required=true, defaultValue="0")
          protected String bookAdvanceDay;

          @XmlElement(required=true)
          protected String bookAdvanceTime;

          @XmlElement(required=true)
          protected String useAdvanceHour;

          public AdvanceOption()
          {
            this.bookAdvanceDay = "";
            this.bookAdvanceTime = "";
            this.useAdvanceHour = "";
          }

          public String getBookAdvanceDay()
          {
            return this.bookAdvanceDay;
          }

          public void setBookAdvanceDay(String value)
          {
            this.bookAdvanceDay = value;
          }

          public String getBookAdvanceTime()
          {
            return this.bookAdvanceTime;
          }

          public void setBookAdvanceTime(String value)
          {
            this.bookAdvanceTime = value;
          }

          public String getUseAdvanceHour()
          {
            return this.useAdvanceHour;
          }

          public void setUseAdvanceHour(String value)
          {
            this.useAdvanceHour = value;
          }
        }
      }

      @XmlAccessorType(XmlAccessType.FIELD)
      @XmlType(name="", propOrder={"resourceId", "sights", "productName"})
      public static class BaseInfo
      {

        @XmlElement(required=true)
        protected String resourceId;

        @XmlElement(required=true)
        protected Sights sights;

        @XmlElement(required=true)
        protected String productName;

        public BaseInfo()
        {
          this.resourceId = "";
          this.sights = new Sights();
          this.productName = "";
        }

        public String getResourceId()
        {
          return this.resourceId;
        }

        public void setResourceId(String value)
        {
          this.resourceId = value;
        }

        public Sights getSights()
        {
          return this.sights;
        }

        public void setSights(Sights value)
        {
          this.sights = value;
        }

        public String getProductName()
        {
          return this.productName;
        }

        public void setProductName(String value)
        {
          this.productName = value;
        }

        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name="", propOrder={"sight"})
        public static class Sights
        {

          @XmlElement(required=true)
          protected List<Sight> sight;

          public Sights()
          {
            this.sight = new ArrayList();
          }

          public List<Sight> getSight()
          {
            if (this.sight == null) {
              this.sight = new ArrayList();
            }
            return this.sight;
          }

          public void setSight(List<Sight> sight)
          {
            this.sight = sight;
          }

          @XmlAccessorType(XmlAccessType.FIELD)
          @XmlType(name="", propOrder={"sightName", "city", "sightid", "categoryId"})
          public static class Sight
          {

            @XmlElement(required=true)
            protected String sightName;

            @XmlElement(required=true)
            protected String city;
            
            @XmlElement(required=true)
            protected String sightid;
            
            @XmlElement(required=false)
            protected String categoryId;

            public Sight()
            {
              this.sightName = "";
              this.city = "";
              this.sightid = "";
              this.categoryId = "";
            }

            
            public String getCategoryId() {
				return categoryId;
			}


			public void setCategoryId(String categoryId) {
				this.categoryId = categoryId;
			}


			public String getSightid() {
				return sightid;
			}


			public void setSightid(String sightid) {
				this.sightid = sightid;
			}


			public String getSightName()
            {
              return this.sightName;
            }

            public void setSightName(String value)
            {
              this.sightName = value;
            }

            public String getCity()
            {
              return this.city;
            }

            public void setCity(String value)
            {
              this.city = value;
            }
          }
        }
      }
    }
  }
}