package jace.shim.springcamp2017.member.model.read;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jace.shim.springcamp2017.core.infra.InfraConstants;
import lombok.*;
import org.hibernate.annotations.Type;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* Created by jaceshim on 2017. 3. 30..
*/
@Entity
@Table(name = "member")
@Getter
@Setter
@ToString
@EqualsAndHashCode(of = { "id" })
@JsonIgnoreProperties({ "password"})
@NoArgsConstructor
public class Member implements Serializable {
/** seq */
@Id
@Column(name = "seq", nullable = false)
private Long seq;
/** 회원 아이디*/
@Column(name = "id", nullable = false)
private String id;
/** 회원 명 */
@Column(name = "name", nullable = false)
private String name;
/** 회원 이메일 */
@Column(name="email", nullable = false)
private String email;
/** 회원 비밀번호 */
@Column(name="password", nullable = false)
private String password;
/** 회원 탈퇴여부 */
@Column(name="withdrawal", nullable = false, columnDefinition = "TINYINT(1)")
private boolean withdrawal;
/** 회원 주소 */
@Column(name="address", nullable = false)
private String address;
/** 회원 등록일시 */
@Column(name = "created", nullable = false)
@Type(type = InfraConstants.LOCAL_DATE_TIME_TYPE)
private LocalDateTime created;
/** 회원정보 수정일시 */
@Column(name = "updated", nullable = false)
@Type(type = InfraConstants.LOCAL_DATE_TIME_TYPE)
private LocalDateTime updated;
/** 회원로그인 일시 */
@Column(name = "logined", nullable = false)
@Type(type = InfraConstants.LOCAL_DATE_TIME_TYPE)
private LocalDateTime logined;
/** 회원로그아웃 일시 */
@Column(name = "logouted", nullable = false)
@Type(type = InfraConstants.LOCAL_DATE_TIME_TYPE)
private LocalDateTime logouted;
public Member(String id, String name, String email, String address) {
this.id = id;
this.name = name;
this.email = email;
this.address = address;
}
}