package de.ph87.data.topic; import de.ph87.data.series.Series; import jakarta.annotation.Nullable; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; import jakarta.persistence.Version; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.Setter; import lombok.ToString; @Entity @Getter @ToString @NoArgsConstructor public class Topic { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @Version private long version; @Setter @NonNull @Column(nullable = false, unique = true) private String name; @Setter @Column(nullable = false) private boolean enabled; @Setter @NonNull @Enumerated(EnumType.STRING) @Column(nullable = false, columnDefinition = "varchar(100)") private TopicType type = TopicType.PatrixOpenDtu; @Setter @Nullable @ManyToOne private Series series0; @Setter @Nullable @ManyToOne private Series series1; @Setter @Nullable @ManyToOne private Series series2; @Setter @Nullable @ManyToOne private Series series3; public Topic(@NonNull final String name) { this.name = name; } }