Files
kandev/apps/backend/internal/agent/settings/controller/profile_contract.go
T
2026-09-25 10:31:58 +01:00

60 lines
2.6 KiB
Go

package controller
import "github.com/kandev/kandev/internal/agent/settings/dto"
// CreateProfileRequestFromDTO is the single transport-to-domain conversion for
// profile creation. It intentionally copies values without applying defaults;
// CreateProfile owns those defaults.
func CreateProfileRequestFromDTO(request dto.ProfileCreateRequest) CreateProfileRequest {
return CreateProfileRequest{
AgentID: request.AgentID,
Name: request.Name,
Model: request.Model,
FallbackModel: request.FallbackModel,
AutoFallback: request.AutoFallback,
RequireExactModel: request.RequireExactModel,
Mode: request.Mode,
ConfigOptions: request.ConfigOptions,
AllowIndexing: request.AllowIndexing,
AutoApprove: request.AutoApprove,
CLIPassthrough: request.CLIPassthrough,
CLIFlags: request.CLIFlags,
EnvVars: request.EnvVars,
CommandPrefix: request.CommandPrefix,
ProviderKind: request.ProviderKind,
ProviderBaseURL: request.ProviderBaseURL,
ProviderAPIKeySecretID: request.ProviderAPIKeySecretID,
CursorMCPAuthEnabled: request.CursorMCPAuthEnabled,
Dynamic: request.Dynamic,
}
}
// UpdateProfileRequestFromDTO is the single transport-to-domain conversion
// for partial profile updates. Pointer fields preserve omission and explicit
// empty values all the way to the controller.
func UpdateProfileRequestFromDTO(request dto.ProfileUpdateRequest) UpdateProfileRequest {
return UpdateProfileRequest{
ID: request.ID,
Name: request.Name,
Model: request.Model,
FallbackModel: request.FallbackModel,
AutoFallback: request.AutoFallback,
RequireExactModel: request.RequireExactModel,
Mode: request.Mode,
ConfigOptions: request.ConfigOptions,
AllowIndexing: request.AllowIndexing,
AutoApprove: request.AutoApprove,
CLIPassthrough: request.CLIPassthrough,
Enabled: request.Enabled,
CLIFlags: request.CLIFlags,
EnvVars: request.EnvVars,
CommandPrefix: request.CommandPrefix,
ProviderKind: request.ProviderKind,
ProviderBaseURL: request.ProviderBaseURL,
ProviderAPIKeySecretID: request.ProviderAPIKeySecretID,
CursorMCPAuthEnabled: request.CursorMCPAuthEnabled,
Dynamic: request.Dynamic,
Force: request.Force,
}
}