76 lines
1.7 KiB
Go
76 lines
1.7 KiB
Go
package request
|
|
|
|
import "narasi-ahli-be/app/database/entity"
|
|
|
|
type AgentCreateRequest struct {
|
|
AgentID string `json:"agent_id" validate:"required"`
|
|
Name string `json:"name" validate:"required"`
|
|
Description string `json:"description"`
|
|
Instructions string `json:"instructions"`
|
|
Type string `json:"type" validate:"required"`
|
|
Status *bool `json:"status"`
|
|
IsActive *bool `json:"is_active"`
|
|
}
|
|
|
|
func (r *AgentCreateRequest) ToEntity() *entity.Agent {
|
|
status := true
|
|
if r.Status != nil {
|
|
status = *r.Status
|
|
}
|
|
|
|
isActive := true
|
|
if r.IsActive != nil {
|
|
isActive = *r.IsActive
|
|
}
|
|
|
|
return &entity.Agent{
|
|
AgentID: r.AgentID,
|
|
Name: r.Name,
|
|
Description: r.Description,
|
|
Instructions: r.Instructions,
|
|
Type: r.Type,
|
|
Status: status,
|
|
IsActive: isActive,
|
|
}
|
|
}
|
|
|
|
type AgentUpdateRequest struct {
|
|
Name *string `json:"name"`
|
|
Description *string `json:"description"`
|
|
Instructions *string `json:"instructions"`
|
|
Type *string `json:"type"`
|
|
Status *bool `json:"status"`
|
|
IsActive *bool `json:"is_active"`
|
|
}
|
|
|
|
func (r *AgentUpdateRequest) ToMap() map[string]interface{} {
|
|
data := map[string]interface{}{}
|
|
|
|
if r.Name != nil {
|
|
data["name"] = *r.Name
|
|
}
|
|
if r.Description != nil {
|
|
data["description"] = *r.Description
|
|
}
|
|
if r.Instructions != nil {
|
|
data["instructions"] = *r.Instructions
|
|
}
|
|
if r.Type != nil {
|
|
data["type"] = *r.Type
|
|
}
|
|
if r.Status != nil {
|
|
data["status"] = *r.Status
|
|
}
|
|
if r.IsActive != nil {
|
|
data["is_active"] = *r.IsActive
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
type AgentQueryRequest struct {
|
|
Name string `query:"name"`
|
|
Type string `query:"type"`
|
|
Status *bool `query:"status"`
|
|
}
|