package bo.gotthardt.model.todo;
import bo.gotthardt.AccessibleBy;
import bo.gotthardt.Persistable;
import bo.gotthardt.model.User;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import java.util.UUID;
/**
* @author Bo Gotthardt
*/
@Entity
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class TodoItem implements Persistable, AccessibleBy<User> {
@Id
private UUID id;
private String name;
private boolean completed = false;
@ManyToOne
@JsonIgnore
private TodoList todoList;
public TodoItem(String name) {
this.name = name;
}
@Override
public boolean isAccessibleBy(User principal) {
return todoList.getOwner().getId().equals(principal.getId());
}
}