package com.pingcap.community.blogserver.entity;


import lombok.*;

import javax.persistence.*;
import java.util.Date;

@Entity(name = "share")
@Table(name = "shares")
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Share {

  public Share(String id) {
    this.id = id;
  }

  @Id
  @Column(name = "id", nullable = false)
  private String id;

  @ManyToOne
  @JoinColumn(name = "post_id", nullable = false, updatable = false)
  private Post post;

  // Notice: When an anonymous user visits, this field is filled in null.
  @ManyToOne
  @JoinColumn(name = "user_id", updatable = false)
  private User user;

  @Column(name = "session_id", updatable = false, length = 128)
  private String sessionID;

  @Column(name = "shared_at", nullable = false, updatable = false)
  private Date sharedAt;

}
