McpServiceEntity.java
package fr.tiogars.chat.domains.mcp.entities;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.Instant;
import java.util.Map;
import java.util.UUID;
/**
* Entity for storing MCP service configurations.
*/
@Entity
@Table(name = "mcp_services")
@EntityListeners(AuditingEntityListener.class)
@Getter
@Setter
public class McpServiceEntity {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@Column(nullable = false, unique = true)
private String serviceId;
@Column(nullable = false)
private String name;
@Column(columnDefinition = "TEXT")
private String description;
@Column(columnDefinition = "TEXT")
private String command;
@ElementCollection
@CollectionTable(name = "mcp_service_env", joinColumns = @JoinColumn(name = "service_id"))
@MapKeyColumn(name = "env_key")
@Column(name = "env_value", columnDefinition = "TEXT")
private Map<String, String> env;
@Column(name = "is_enabled", nullable = false)
private boolean enabled = true;
@Column(name = "timeout_seconds")
private Integer timeoutSeconds = 30;
@CreatedDate
@Column(name = "created_at", updatable = false)
private Instant createdAt;
@LastModifiedDate
@Column(name = "updated_at")
private Instant updatedAt;
public McpServiceEntity() {
}
public McpServiceEntity(String serviceId, String name, String description,
String command, Map<String, String> env,
boolean enabled, Integer timeoutSeconds) {
this.serviceId = serviceId;
this.name = name;
this.description = description;
this.command = command;
this.env = env;
this.enabled = enabled;
this.timeoutSeconds = timeoutSeconds;
}
}