package converter

import (
	"github.com/tidbcloud/AgentTeam/internal/api/dto"
	"github.com/tidbcloud/AgentTeam/internal/store/agent"
)

// ToWorkspaceSnapshotLimits converts agent snapshot limit metadata to API DTO metadata.
func ToWorkspaceSnapshotLimits(limits agent.WorkspaceSnapshotLimits) *dto.WorkspaceSnapshotLimits {
	if limits.Channels.Limit == 0 && limits.Agents.Limit == 0 && limits.Humans.Limit == 0 && !limits.Channels.Truncated && !limits.Agents.Truncated && !limits.Humans.Truncated {
		return nil
	}
	return &dto.WorkspaceSnapshotLimits{
		Channels: dto.WorkspaceSnapshotCollectionLimit{Limit: limits.Channels.Limit, Truncated: limits.Channels.Truncated},
		Agents:   dto.WorkspaceSnapshotCollectionLimit{Limit: limits.Agents.Limit, Truncated: limits.Agents.Truncated},
		Humans:   dto.WorkspaceSnapshotCollectionLimit{Limit: limits.Humans.Limit, Truncated: limits.Humans.Truncated},
	}
}
