package com.style24.persistence.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.style24.core.support.util.MaskingUtils;
import com.style24.persistence.TscBaseDomain;
import com.style24.persistence.TscPageRequest;

import lombok.Data;

/**
 * 상담(1:1문의) Domain
 *
 * @author gagamel
 * @since 2020. 12. 28
 */
@SuppressWarnings("serial")
@Data
public class Counsel extends TscBaseDomain {

	private Integer counselSq;		// 상담일련번호
	private String counselType;		// 상담유형(C-1:1문의, G-상품문의)
	private String siteCd;			// 사이트코드(공통코드G000)
	private String siteNm;			// 사이트명
	private String counselClsf;		// 상담분류(공통코드G059)
	private String counselClsfNm;	// 상담분류명
	private String counselDclsf;	// 상담분류상세(공통코드G591~G599)
	private String counselDclsfNm;	// 상담분류상세명
	private Integer custNo;			// 고객번호
	private String custId;			// 고객ID
	private String custNm;			// 고객명
	private String cellPhnno;		// 휴대전화번호
	private String smsReqYn;		// SMS(알림톡)요청여부
	private String smsSendYn;		// SMS(알림톡)발송여부
	private String email;			// 이메일
	private String relGoodsCd;		// 관련상품코드(상품문의에서만 사용)
	private String goodsNm;			// 상품명(상품문의에서만 사용)
	private String questTitle;		// 문의제목
	private String questContent;	// 문의내용
	private String questDt;			// 문의일자
	private String orgFileNm1;		// 원본파일명1
	private String sysFileNm1;		// 시스템파일명1
	private String orgFileNm2;		// 원본파일명2
	private String sysFileNm2;		// 시스템파일명2
	private String file1OrgFileNm;	// 원본파일명1(등록시 사용)
	private String file1SysFileNm;	// 시스템파일명1(등록시 사용)
	private String file2OrgFileNm;	// 원본파일명2(등록시 사용)
	private String file2SysFileNm;	// 시스템파일명2(등록시 사용)
	private String ansStat;			// 답변상태(공통코드G060)
	private String ansStatNm;		// 답변상태명
	private String ansTitle;		// 답변제목
	private String ansContent;		// 답변내용
	private String ansDt;			// 답변일자
	private String secretYn;		// 비밀글여부(상품문의에서만 사용)
	private String delYn;			// 삭제여부
	private int selfGb;				// 내문의 1: , 그외 0
	private String sysFileNm;		// 이미지 공통 변수
	private int rnum;
	
	private String goodsType; 		// 상품타입

	// 1:1문의(총, 답변완료, 처리중) 건수
	private int totCnt;		// 총건수
	private int ansCnt;		// 답변완료건수
	private int ingCnt;		// 처리중건수

	// Masking
	public String getMaskingCustId() {
		return (this.custId != null) ?  MaskingUtils.id(this.custId) : this.custId;
	}
	
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] orgFileNmArr;
	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
	private String[] sysFileNmArr;


	// Pagination
	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	private TscPageRequest pageable;

	private int pageNo = 1;
	private int pageSize = 10;
	private int pageUnit = 10;

}
