<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
    i18n_domain="senaite.core">

  <!-- XML Import/Export Adapters -->

  <!-- N.B. Deactivated by purpose!
            Avoid its usage when the site properties get exported:
            Products.CMFCore.exportimport.properties.exportSiteProperties
      <adapter factory=".structure.SenaiteSiteXMLAdapter"/>
  -->
  <adapter factory=".structure.ATContentXMLAdapter"/>
  <adapter factory=".structure.DXContainerXMLAdapter"/>
  <adapter factory=".structure.DXItemXMLAdapter"/>

  <!-- AT Field Adapters
       Know how to Import/Export field values
  -->
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATTextFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATFileFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATBlobFileFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATDateTimeFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATReferenceFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATUIDReferenceFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATRecordFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.ATRichTextFieldNodeAdapter"/>

  <!-- DX Field Adapters
       Know how to Import/Export field values
  -->
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXDataGridFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXDateTimeFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXNamedFileFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXReferenceFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXRichTextFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXTextFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXTextLineFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXTupleFieldNodeAdapter"/>
  <adapter provides=".interfaces.IFieldNode" factory=".adapters.DXChoiceFieldNodeAdapter"/>

  <class class="senaite.core.browser.fields.record.RecordField">
    <implements interface=".interfaces.IRecordField" />
  </class>

  <genericsetup:exportStep
      name="senaite.core.export"
      title="SENAITE: Export Content Structure"
      description="Export LIMS Content Structure"
      handler=".structure.export_xml"
      />

  <genericsetup:importStep
      name="senaite.core.import"
      title="SENAITE: Import Content Structure"
      description="Import LIMS Content Structure"
      handler=".structure.import_xml">
    <depends name="componentregistry"/>
  </genericsetup:importStep>

</configure>
