package sync

// SyncResult represents the result of a sync operation
type SyncResult struct {
	// Collection sync statistics
	CollectionsProcessed int `json:"collections_processed"`
	CollectionsAdded     int `json:"collections_added"`
	CollectionsUpdated   int `json:"collections_updated"`
	CollectionsDeleted   int `json:"collections_deleted"`

	// File sync statistics
	FilesProcessed int `json:"files_processed"`
	FilesAdded     int `json:"files_added"`
	FilesUpdated   int `json:"files_updated"`
	FilesDeleted   int `json:"files_deleted"`

	// Errors encountered during sync
	Errors []string `json:"errors,omitempty"`
}

// SyncInput represents input parameters for sync operations
type SyncInput struct {
	BatchSize  int64  `json:"batch_size,omitempty"`  // Number of items per batch (default: 50)
	MaxBatches int    `json:"max_batches,omitempty"` // Maximum batches to process (default: 100)
	Password   string `json:"password"`              // Required for E2EE decryption
}

// SyncStatus represents the current sync status
type SyncStatus struct {
	CollectionsSynced bool `json:"collections_synced"`
	FilesSynced       bool `json:"files_synced"`
	FullySynced       bool `json:"fully_synced"`
}

// DefaultBatchSize is the default number of items to fetch per API call
const DefaultBatchSize = 50

// DefaultMaxBatches is the default maximum number of batches to process
const DefaultMaxBatches = 100
