package converter

import (
	"github.com/tidbcloud/AgentTeam/internal/api/dto"
	"github.com/tidbcloud/AgentTeam/internal/service/kb"
)

func ToUADashboardStatusResponse(status kb.UADashboardStatus) dto.UADashboardStatusResponse {
	response := dto.UADashboardStatusResponse{
		State: status.State, SourceID: status.SourceID, SourceCommitSHA: status.SourceCommitSHA,
		DashboardSourceCommitSHA: status.DashboardSourceCommitSHA, DashboardCommitSHA: status.DashboardCommitSHA,
		UpdateAvailable: status.UpdateAvailable, PublishedAt: status.PublishedAt,
		CanImport: status.CanImport, AcceptedFormats: status.AcceptedFormats,
		Limits: dto.UADashboardLimitsResponse{HTTPBytes: status.Limits.HTTPBytes, ExtractedBytes: status.Limits.ExtractedBytes, FileBytes: status.Limits.FileBytes, Entries: status.Limits.Entries, JSONDepth: status.Limits.JSONDepth},
	}
	if status.Manifest == nil {
		return response
	}
	manifest := &dto.UADashboardManifestResponse{Files: make([]dto.UADashboardManifestFileResponse, 0, len(status.Manifest.Files))}
	for _, file := range status.Manifest.Files {
		manifest.Files = append(manifest.Files, dto.UADashboardManifestFileResponse{Path: file.Path, Bytes: file.Bytes, BlobSHA: file.BlobSHA})
	}
	response.Manifest = manifest
	return response
}
