LmStudioSettingsEntity.java
package fr.tiogars.chat.domains.lmstudio.entities;
import fr.tiogars.chat.domains.lmstudio.models.LmStudioSettings;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
@Entity
@Table(name = "lmstudio_settings")
public class LmStudioSettingsEntity {
public static final Long GLOBAL_ID = 1L;
@Id
private Long id = GLOBAL_ID;
@Column(nullable = false, length = 2048)
private String baseUrl;
@Column(nullable = false)
private String model;
@Column(nullable = false)
private int timeoutSeconds;
@Column(length = 4096)
private String token;
protected LmStudioSettingsEntity() {
}
public LmStudioSettingsEntity(LmStudioSettings settings) {
update(settings);
}
public void update(LmStudioSettings settings) {
this.baseUrl = settings.baseUrl();
this.model = settings.model();
this.timeoutSeconds = settings.timeoutSeconds();
if (settings.token() != null) {
this.token = settings.token().isEmpty() ? null : settings.token();
}
}
public LmStudioSettings toSettings() {
return new LmStudioSettings(baseUrl, model, timeoutSeconds, token);
}
}