package com.neusoft.smart.pos.dto.card.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@ApiModel
public class ActivateCardRequest {

	@NotNull(message = "cardType is required")
	@ApiModelProperty(name = "cardType", value = "卡类型：0：会员卡 1：储值卡 2：礼品卡", dataType = "int", example = "0", required = true)
	private int cardType;
	
	@NotNull(message = "beanName is required")
	@ApiModelProperty(name = "beanName", value = "卡关联关系查询Bean名称", dataType = "String", example = "defaultCardRelationRepository", required = true)
	private String beanName;

	@ApiModelProperty(name = "rechargeStrategyParam", value = "充值策略参数", dataType = "String", example = "1", required = true)
	private String rechargeStrategyParam;

	@ApiModelProperty(name = "pointStrategyParam", value = "积分策略参数", dataType = "String", example = "1", required = true)
	private String pointStrategyParam;

	@ApiModelProperty(name = "cardNum", value = "卡号", dataType = "String", example = "12225845")
	private String cardNum;

	@ApiModelProperty(name = "cardOtherId", value = "卡其他识别号", dataType = "String", example = "12225845")
	private String cardOtherId;

	@ApiModelProperty(name = "cardAnotherId", value = "卡识别号二", dataType = "String", example = "12225845")
	private String cardAnotherId;
	
	@ApiModelProperty(name = "needPassword", value = "是否需要卡密码@0不需要 @1需要，默认值0", dataType = "String", example = "1")
	private String needPassword = "0";
	
	@ApiModelProperty(name = "cardPassword", value = "卡密码", dataType = "String", example = "12225845")
	private String cardPassword;
	
	@ApiModelProperty(name = "cardImage", value = "卡图片地址", dataType = "String", example = "http://xxx")
	private String cardImage;
	
	private Integer org;
	
	private Integer store = 0;
	
	// 以下为会员信息：如果卡类型为会员卡，则name字段不能为空
	private String name;
	
	private String mobile;
	
	private String memberEmail;
	
	private String memberCode;
	
	private Integer memberType;	
	
	private Date birthday;
	
	private Integer gender;
	
	private String address;
	
	private String avatar;
	
	private String content;	
}
