package com.izouma.walkchina.domain; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.annotations.Where; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; import java.util.Date; @Entity @Data @NoArgsConstructor @AllArgsConstructor @Builder @JsonInclude(JsonInclude.Include.NON_NULL) @Where(clause = "active = 1") @EntityListeners(AuditingEntityListener.class) public class TeamMember { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private Long userId; private Long leader; @Temporal(TemporalType.DATE) private Date hireDate; @Temporal(TemporalType.DATE) private Date startDate; @Temporal(TemporalType.DATE) private Date endDate; @Column(columnDefinition = "bit default 1", nullable = false) @Builder.Default public Boolean active = true; @CreatedBy private String createdBy; @CreatedDate private Date createdAt; @LastModifiedBy private String modifiedBy; @LastModifiedDate private Date modifiedAt; }