package bootstrap

import (
	kernelconnector "github.com/nexuscrm/kernel/pkg/connector"
	connector "github.com/pingcap-inc/nexuscrm-contract/pkg/connector"
)

// The PushToConnector durable-metadata contract types, enum strings, and the
// pure parse/validate functions below were relocated out of internal/bootstrap
// as the AU pilot slice of the bootstrap-decoupling campaign:
//   - Pure DTOs + enum strings → nexuscrm-contract/pkg/connector.
//   - Parsers/validators that depend on shared/pkg/constants →
//     nexuscrm-kernel/pkg/connector.
//
// The aliases below keep every existing bootstrap importer compiling unchanged
// until a later wave repoints them. bootstrap acquires no new behavior.

// ConnectorPushDurableMetadataContract is the pack-owned L1 contract for durable
// PushToConnector identity/write-target metadata. Relocated verbatim to contract.
type ConnectorPushDurableMetadataContract = connector.ConnectorPushDurableMetadataContract

type ConnectorPushAssociationContract = connector.ConnectorPushAssociationContract

type ConnectorPushAssociationJunctionContract = connector.ConnectorPushAssociationJunctionContract

type ConnectorPushAssociationJunctionFilter = connector.ConnectorPushAssociationJunctionFilter

type ConnectorPushContractValidationOptions = connector.ConnectorPushContractValidationOptions

type ConnectorPushObjectFieldMetadata = connector.ConnectorPushObjectFieldMetadata

const (
	ConnectorPushSameOriginWritePolicySuppress           = connector.ConnectorPushSameOriginWritePolicySuppress
	ConnectorPushSameOriginWritePolicyAllowPatchExisting = connector.ConnectorPushSameOriginWritePolicyAllowPatchExisting
)

// ConnectorPushActionSlotID is retained only for legacy test fixtures. Relocated
// to nexuscrm-kernel/pkg/connector.
var ConnectorPushActionSlotID = kernelconnector.ConnectorPushActionSlotID

// ParseConnectorPushDurableMetadataContractFromPayload builds one durable
// PushToConnector v2 metadata contract from a source-backed app-pack component
// payload. Relocated to nexuscrm-kernel/pkg/connector (depends on shared/pkg/constants).
var ParseConnectorPushDurableMetadataContractFromPayload = kernelconnector.ParseConnectorPushDurableMetadataContractFromPayload

// ValidateConnectorPushDurableMetadataContracts rejects contracts that cannot be
// backed by pack-owned outbound connector_field_mapping rows. Relocated to
// nexuscrm-kernel/pkg/connector.
var ValidateConnectorPushDurableMetadataContracts = kernelconnector.ValidateConnectorPushDurableMetadataContracts

// ValidateConnectorPushDurableMetadataContractsWithOptions is the options-aware
// validation entrypoint. Relocated to nexuscrm-kernel/pkg/connector.
var ValidateConnectorPushDurableMetadataContractsWithOptions = kernelconnector.ValidateConnectorPushDurableMetadataContractsWithOptions
