package com.unionpaysmart.data.sdk.model.bill.request;

import java.util.Date;

import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.unionpaysmart.data.sdk.json.serializer.DateSerializer;
import com.unionpaysmart.data.sdk.model.base.request.BaseRequest;
import com.unionpaysmart.data.sdk.valid.annotation.IDCard;
import com.unionpaysmart.data.sdk.valid.annotation.Mobile;
import com.unionpaysmart.data.sdk.valid.annotation.NotBlank;

/**
 * 商户账单查询 输入参数
 * 
 * @author Nie Xiongding
 * @since 2015年3月2日 下午5:27:08
 */
public class BillMerchantRequest extends BaseRequest {
    @NotBlank
    private int type; // 是否返回账单明细，0：不返回，1：返回
    @NotBlank
    private String mid; // 商户编号或商户编号识别码，限一个
    @NotBlank
    private String mName; // 准确的商户名称
    private String posId; // 终端编号，银联POS机编号，可以多个，用英文逗号隔开
    private String businessCode; // 营业执照注册编号
    private String name; // 商户负责人姓名
    @Mobile
    private String mobile; // 商户负责人手机号码
    @IDCard
    private String cid; // 商户负责人身份证号码
    @NotBlank
    @JsonSerialize(using=DateSerializer.class)
    private Date beginDate; // 账单查询开始日期，格式：yyyy-mm-dd
    @NotBlank
    @JsonSerialize(using=DateSerializer.class)
    private Date endDate; // 账单查询结束日期，格式：yyyy-mm-dd

    /**
     * @return type
     */
    public int getType() {
        return type;
    }

    /**
     * @param type
     *     是否返回账单明细，0：不返回，1：返回 <b>必填</b>
     */
    public void setType(int type) {
        this.type = type;
    }

    /**
     * @return mid
     */
    public String getMid() {
        return mid;
    }

    /**
     * @param mid
     *     商户编号或商户编号识别码，限一个 <b>必填</b>
     */
    public void setMid(String mid) {
        this.mid = mid;
    }

    /**
     * @return mName
     */
    @JsonProperty("mName")
    public String getMName() {
        return mName;
    }

    /**
     * @param mName
     *     准确的商户名称 <b>必填</b>
     */
    public void setMName(String mName) {
        this.mName = mName;
    }

    /**
     * @return posId
     */
    public String getPosId() {
        return posId;
    }

    /**
     * @param posId
     *     终端编号，银联POS机编号，可以多个，用英文逗号隔开
     */
    public void setPosId(String posId) {
        this.posId = posId;
    }

    /**
     * @return businessCode
     */
    public String getBusinessCode() {
        return businessCode;
    }

    /**
     * @param businessCode
     *     营业执照注册编号开
     */
    public void setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
    }

    /**
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name
     *     商户负责人姓名
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return mobile
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * @param mobile
     *     商户负责人手机号码
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    /**
     * @return cid
     */
    public String getCid() {
        return cid;
    }

    /**
     * @param cid
     *     商户负责人身份证号码
     */
    public void setCid(String cid) {
        this.cid = cid;
    }

    /**
     * @return beginDate
     */
    public Date getBeginDate() {
        return beginDate;
    }

    /**
     * @param beginDate
     *     账单查询开始日期，格式：yyyy-mm-dd <b>必填</b>
     */
    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    /**
     * @return endDate
     */
    public Date getEndDate() {
        return endDate;
    }

    /**
     * @param endDate
     *     账单查询结束日期，格式：yyyy-mm-dd <b>必填</b>
     */
    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }
}
