package com.eactive.eai.data.entity.custom.stderrorcode;

import java.io.Serializable;
import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.Comment;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import com.eactive.eai.data.entity.AbstractEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;

@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = true)

@Entity
@Table(name = "tseaimx06")
@org.hibernate.annotations.Table(appliesTo = "tseaimx06", comment = "채널 에러코드")
public class ChannelErrorCode extends AbstractEntity<String> implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(unique = true, nullable = false, length = 36)
	@Comment("표준오류코드ID")
	private String OBJ_ID;

	@Column(length = 10)
	@Comment("표준오류코드")
	private String STD_ERR_CD;

	@Column(length = 3)
	@Comment("언어구분코드")
	private String ERR_TLG_LAN_DSCD;

	@Column(length = 1)
	@Comment("오류유형코드")
	private String ERR_TP_CD;

	@Column(length = 4)
	@Comment("채널유형코드")
	private String CHNL_TP_CD;

	@Column(length = 1)
	@Comment("채널코드사용여부")
	private String ERR_CD_US_YN;

	@Column(length = 10)
	@Comment("채널오류코드")
	private String CHNL_ERR_CD;
	@Column(length = 3)
	@Comment("채널세부코드")
	private String CHNL_DTLS_CLCD;

	@Column(length = 200)
	@Comment("채널오류메시지내용")
	private String CHNL_ERR_MSG_CTS;

	@Column(length = 10)
	@Comment("에러코드적용일자")
	private String ERR_CD_APL_DT;

	@Column(length = 36)
	@Comment("채널오류코드의OBJ_ID")
	private String CHNL_ID;

	@Column(length = 10)
	@Comment("조치코드")
	private String ACTN_CD;

	@Column(length = 36)
	@Comment("조치코드의 OBJ_ID")
	private String OF_ACTN_CD;

	@Column(name = "CHNG_DTTM", nullable = false)
	@CreationTimestamp
	private LocalDateTime createDatetime;

	@Column(length = 1)
	@Comment("삭제여부")
	private String DEL_YN;

	@Column(name = "MOD_DTTM", nullable = false)
	@UpdateTimestamp
	private LocalDateTime updateDatetime;

	@Override
	public @NonNull String getId() {
		return OBJ_ID;
	}
}