package com.commafeed.backend.model; import java.sql.Types; import org.hibernate.annotations.JdbcTypeCode; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import jakarta.persistence.FetchType; import jakarta.persistence.JoinColumn; import jakarta.persistence.Lob; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; @Entity @Table(name = "USERSETTINGS") @SuppressWarnings("serial") @Getter @Setter public class UserSettings extends AbstractModel { public enum ReadingMode { all, unread } public enum ReadingOrder { asc, desc } public enum ViewMode { title, cozy, detailed, expanded } @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false, unique = true) private User user; @Enumerated(EnumType.STRING) @Column(nullable = false) private ReadingMode readingMode; @Enumerated(EnumType.STRING) @Column(nullable = false) private ReadingOrder readingOrder; @Column(name = "user_lang", length = 4) private String language; private boolean showRead; private boolean scrollMarks; @Lob @Column(length = Integer.MAX_VALUE) @JdbcTypeCode(Types.LONGVARCHAR) private String customCss; @Lob @Column(length = Integer.MAX_VALUE) @JdbcTypeCode(Types.LONGVARCHAR) private String customJs; @Column(name = "scroll_speed") private int scrollSpeed; private boolean alwaysScrollToEntry; private boolean markAllAsReadConfirmation; private boolean customContextMenu; private boolean mobileFooter; private boolean email; private boolean gmail; private boolean facebook; private boolean twitter; private boolean tumblr; private boolean pocket; private boolean instapaper; private boolean buffer; }