PromptEntity.java
package fr.tiogars.chat.domains.prompt.entities;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.Instant;
import java.util.UUID;
/**
* Entity for storing prompt history and configurations.
*/
@Entity
@Table(name = "prompts")
@EntityListeners(AuditingEntityListener.class)
@Getter
@Setter
public class PromptEntity {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@Column(nullable = false, columnDefinition = "TEXT")
private String prompt;
@Column(columnDefinition = "TEXT")
private String systemPrompt;
@Column(columnDefinition = "TEXT")
private String response;
@Column(name = "model_used")
private String modelUsed;
@Column(name = "token_count")
private Integer tokenCount;
@Column(name = "processing_time_ms")
private Long processingTimeMs;
@Column(name = "finish_reason")
private String finishReason;
@CreatedDate
@Column(name = "created_at", updatable = false)
private Instant createdAt;
@Column(name = "session_id")
private String sessionId;
@Column(name = "user_id")
private UUID userId;
public PromptEntity() {
}
public PromptEntity(String prompt, String systemPrompt, String response,
String modelUsed, Integer tokenCount, Long processingTimeMs,
String finishReason, String sessionId, UUID userId) {
this.prompt = prompt;
this.systemPrompt = systemPrompt;
this.response = response;
this.modelUsed = modelUsed;
this.tokenCount = tokenCount;
this.processingTimeMs = processingTimeMs;
this.finishReason = finishReason;
this.sessionId = sessionId;
this.userId = userId;
}
}