View Javadoc
1   package fr.tiogars.chat.domains.lmstudio.entities;
2   
3   import fr.tiogars.chat.domains.lmstudio.models.LmStudioSettings;
4   import jakarta.persistence.Column;
5   import jakarta.persistence.Entity;
6   import jakarta.persistence.Id;
7   import jakarta.persistence.Table;
8   
9   @Entity
10  @Table(name = "lmstudio_settings")
11  public class LmStudioSettingsEntity {
12  
13      public static final Long GLOBAL_ID = 1L;
14  
15      @Id
16      private Long id = GLOBAL_ID;
17  
18      @Column(nullable = false, length = 2048)
19      private String baseUrl;
20  
21      @Column(nullable = false)
22      private String model;
23  
24      @Column(nullable = false)
25      private int timeoutSeconds;
26  
27      @Column(length = 4096)
28      private String token;
29  
30      protected LmStudioSettingsEntity() {
31      }
32  
33      public LmStudioSettingsEntity(LmStudioSettings settings) {
34          update(settings);
35      }
36  
37      public void update(LmStudioSettings settings) {
38          this.baseUrl = settings.baseUrl();
39          this.model = settings.model();
40          this.timeoutSeconds = settings.timeoutSeconds();
41          if (settings.token() != null) {
42              this.token = settings.token().isEmpty() ? null : settings.token();
43          }
44      }
45  
46      public LmStudioSettings toSettings() {
47          return new LmStudioSettings(baseUrl, model, timeoutSeconds, token);
48      }
49  }