package rest

import (
	"github.com/nexuscrm/backend/internal/application/services"
	"github.com/nexuscrm/backend/internal/features/mru"
)

// SObjectHandler handles all SObject REST API endpoints.
// Method implementations are split across domain-specific files:
//   - sobject_describe.go  — ListObjects, DescribeObject, DescribeLayouts, DescribeLayoutByRecordType, buildRelatedLists
//   - sobject_records.go   — GetRecord, CreateRecord, UpdateRecord, DeleteRecord, hydrateLookups, validateInput
//   - sobject_views.go     — ListViews, UpsertByExternalID, GetByExternalID
//   - sobject_field_helpers.go — field mapping helpers (mapFieldTypeToSF, fieldLength, etc.)
type SObjectHandler struct {
	svcMgr     *services.ServiceManager
	mruService *mru.Service
}

// NewSObjectHandler creates a new SObjectHandler
func NewSObjectHandler(svcMgr *services.ServiceManager, mruService *mru.Service) *SObjectHandler {
	return &SObjectHandler{svcMgr: svcMgr, mruService: mruService}
}
