package com.cloudcross.ssp.model;
import java.util.Date;
import java.util.List;

import com.cloudcross.ssp.web.widget.SelectorController.ISelector;

/**
 * 投放管理中的投放管理表
 * @author chenyou
 *
 */
public final class AdGroup implements ISelector{
	//投放id
	private Long id;
	//代理商id
	private Long agentId;
	//广告主id
	private Long advertiserId;
	//订单id
	private Long orderId;
	//活动id
	private Long campaignId;
	//运营商Id
	private Long operatorId;	
	// 投放名称
	private String adGroupName;
	// 开始时间
	private Date startDate;
	// 结束时间
	private Date endDate;
	// 总预算
	private Double totalBudget;
	//投放模式
	private Integer mode;
	//单价
	private Double price;
	// 每日预算
	private Double dailyBudget;
	// 曝光总上限
	private Long maxImpression;
	// 点击总上限
	private Long maxClick;
	//转换总上限
	private Long maxConversion;
	// 每日曝光上限
	private Long dailyMaxImpression;
	// 每日点击上限
	private Long dailyMaxClick;
	// 每日转换上限
	private Long dailyMaxConversion;
	//单人曝光频次类型
	private Integer perImpressionType;
	//单人曝光频次
	private Long perImpression;
	//单人点击频次类型
	private Integer perClickType;
	//单人点击频次
	private Long perClick;
	//位置
	private String position;
	//点击找回
	private Integer retarget;
	//访客投放期
	private Long period;
	//状态
	private Integer status;
	//更新时间
	private Date updated;
	//这个活动的创意总数
	private Integer bannerNumber;
	//是否全客网站
	private Integer site;
	//操作系统 1-iOS，2-Android，3-WP,4-Symbian,5-MAC OS,6-Windows,7-other
	private Integer os;
	//广告位ID集合
	private List<Long> zoneIdList;
	//场景ID集合
	private List<Long> placeIdList;
	//媒体自定义分组ID集合
	private List<Long> wifigroupIdList;
	
	public List<Long> getZoneIdList() {
		return zoneIdList;
	}

	public void setZoneIdList(List<Long> zoneIdList) {
		this.zoneIdList = zoneIdList;
	}

	public List<Long> getPlaceIdList() {
		return placeIdList;
	}

	public void setPlaceIdList(List<Long> placeIdList) {
		this.placeIdList = placeIdList;
	}

	public List<Long> getWifigroupIdList() {
		return wifigroupIdList;
	}

	public void setWifigroupIdList(List<Long> wifigroupIdList) {
		this.wifigroupIdList = wifigroupIdList;
	}
	
	public Long getAgentId() {
		return agentId;
	}

	public void setAgentId(Long agentId) {
		this.agentId = agentId;
	}

	public Long getAdvertiserId() {
		return advertiserId;
	}

	public void setAdvertiserId(Long advertiserId) {
		this.advertiserId = advertiserId;
	}

	public Integer getSite() {
		return site;
	}

	public void setSite(Integer site) {
		this.site = site;
	}

	public Integer getMode() {
		return mode;
	}

	public void setMode(Integer mode) {
		this.mode = mode;
	}

	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}

	public String getPosition() {
		return position;
	}

	public void setPosition(String position) {
		this.position = position;
	}

	public Integer getRetarget() {
		return retarget;
	}

	public void setRetarget(Integer retarget) {
		this.retarget = retarget;
	}

	public Long getPeriod() {
		return period;
	}

	public void setPeriod(Long period) {
		this.period = period;
	}

	public Integer getBannerNumber() {
		return bannerNumber;
	}

	public void setBannerNumber(Integer bannerNumber) {
		this.bannerNumber = bannerNumber;
	}

	public Date getUpdated() {
		return updated;
	}

	public void setUpdated(Date updated) {
		this.updated = updated;
	}
	
	public Long getOperatorId() {
		return operatorId;
	}

	public void setOperatorId(Long operatorId) {
		this.operatorId = operatorId;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getOrderId() {
		return orderId;
	}

	public void setOrderId(Long orderId) {
		this.orderId = orderId;
	}

	public Long getCampaignId() {
		return campaignId;
	}

	public void setCampaignId(Long campaignId) {
		this.campaignId = campaignId;
	}

	public String getAdGroupName() {
		return adGroupName;
	}

	public void setAdGroupName(String adGroupName) {
		this.adGroupName = adGroupName;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public Double getTotalBudget() {
		return totalBudget;
	}

	public void setTotalBudget(Double totalBudget) {
		this.totalBudget = totalBudget;
	}

	public Double getDailyBudget() {
		return dailyBudget;
	}

	public void setDailyBudget(Double dailyBudget) {
		this.dailyBudget = dailyBudget;
	}

	public Long getMaxImpression() {
		return maxImpression;
	}

	public void setMaxImpression(Long maxImpression) {
		this.maxImpression = maxImpression;
	}

	public Long getMaxClick() {
		return maxClick;
	}

	public void setMaxClick(Long maxClick) {
		this.maxClick = maxClick;
	}

	public Long getMaxConversion() {
		return maxConversion;
	}

	public void setMaxConversion(Long maxConversion) {
		this.maxConversion = maxConversion;
	}

	public Long getDailyMaxImpression() {
		return dailyMaxImpression;
	}

	public void setDailyMaxImpression(Long dailyMaxImpression) {
		this.dailyMaxImpression = dailyMaxImpression;
	}

	public Long getDailyMaxClick() {
		return dailyMaxClick;
	}

	public void setDailyMaxClick(Long dailyMaxClick) {
		this.dailyMaxClick = dailyMaxClick;
	}

	public Long getDailyMaxConversion() {
		return dailyMaxConversion;
	}

	public void setDailyMaxConversion(Long dailyMaxConversion) {
		this.dailyMaxConversion = dailyMaxConversion;
	}

	public Integer getPerImpressionType() {
		return perImpressionType;
	}

	public void setPerImpressionType(Integer perImpressionType) {
		this.perImpressionType = perImpressionType;
	}

	public Long getPerImpression() {
		return perImpression;
	}

	public void setPerImpression(Long perImpression) {
		this.perImpression = perImpression;
	}

	public Integer getPerClickType() {
		return perClickType;
	}

	public void setPerClickType(Integer perClickType) {
		this.perClickType = perClickType;
	}

	public Long getPerClick() {
		return perClick;
	}

	public void setPerClick(Long perClick) {
		this.perClick = perClick;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}
	
	
	
	public Integer getOs() {
		return os;
	}

	public void setOs(Integer os) {
		this.os = os;
	}

	

	@Override
	public String toString() {
		return "AdGroup [id=" + id + ", agentId=" + agentId + ", advertiserId="
				+ advertiserId + ", orderId=" + orderId + ", campaignId="
				+ campaignId + ", operatorId=" + operatorId + ", adGroupName="
				+ adGroupName + ", startDate=" + startDate + ", endDate="
				+ endDate + ", totalBudget=" + totalBudget + ", mode=" + mode
				+ ", price=" + price + ", dailyBudget=" + dailyBudget
				+ ", maxImpression=" + maxImpression + ", maxClick=" + maxClick
				+ ", maxConversion=" + maxConversion + ", dailyMaxImpression="
				+ dailyMaxImpression + ", dailyMaxClick=" + dailyMaxClick
				+ ", dailyMaxConversion=" + dailyMaxConversion
				+ ", perImpressionType=" + perImpressionType
				+ ", perImpression=" + perImpression + ", perClickType="
				+ perClickType + ", perClick=" + perClick + ", position="
				+ position + ", retarget=" + retarget + ", period=" + period
				+ ", status=" + status + ", updated=" + updated
				+ ", bannerNumber=" + bannerNumber + ", site=" + site + ", os="
				+ os + "]";
	}

	@Override
	public String getLabel() {
		return this.adGroupName;
	}

	@Override
	public String getValue() {
		return String.valueOf(this.id);
	}
	
}