<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mongo-mapping xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping
                        http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">

    <mapped-superclass name="FOS\MessageBundle\Document\Thread" collection="fos_message_thread">

        <field name="subject" fieldName="subject" type="string" />

        <!--<embed-many target-document="FOS\MessageBundle\Document\ThreadMetadata" field="metadata" />-->

        <!--<reference-many field="participants" target-document="Acme\UserBundle\Document\User" />-->

        <!--<reference-many field="messages" target-document="Acme\MessageBundle\Document\Message" />-->

        <!--<reference-one field="createdBy" target-document="Acme\UserBundle\Document\User" />-->

        <field name="createdAt" fieldName="createdAt" type="date" />

        <field name="lastMessageDate" fieldName="lastMessageDate" type="date" />

        <field name="isSpam" fieldName="isSpam" type="boolean" />

        <field name="keywords" fieldName="keywords" type="string" />

        <field name="activeParticipants" fieldName="activeParticipants" type="collection" />

        <field name="activeRecipients" fieldName="activeRecipients" type="collection" />

        <field name="activeSenders" fieldName="activeSenders" type="collection" />

        <indexes>
            <index>
                <key name="createdAt" order="desc" />
            </index>
            <index>
                <key name="lastMessageDate" order="desc" />
            </index>
            <!-- ThreadManager::getParticipantThreadsBySearchQueryBuilder() -->
            <index>
                <key name="activeParticipants" order="asc" />
                <key name="lastMessageDate" order="desc" />
            </index>
            <!-- ThreadManager::getParticipantInboxThreadsQueryBuilder() -->
            <index>
                <key name="activeRecipients" order="asc" />
                <key name="lastMessageDate" order="desc" />
            </index>
            <!-- ThreadManager::getParticipantSentThreadsQueryBuilder() -->
            <index>
                <key name="activeSenders" order="asc" />
                <key name="lastMessageDate" order="desc" />
            </index>
            <!--  ThreadManager::findThreadsCreatedBy() -->
            <index>
                <key name="createdBy.$id" order="asc" />
            </index>
        </indexes>

    </mapped-superclass>

</doctrine-mongo-mapping>
