<?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\Message" collection="fos_message_message">

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

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

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

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

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

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

        <!--<reference-one field="thread" target-document="FOS\MessageBundle\Document\Thread" />-->

        <indexes>
            <index>
                <key name="createdAt" order="desc" />
            </index>
            <index>
                <key name="sender.$id" order="asc" />
            </index>
            <!-- MessageManager::getNbUnreadMessageByParticipant() -->
            <index>
                <key name="unreadForParticipants" order="asc" />
            </index>
            <!-- MessageManager::markIsReadByThreadAndParticipant() -->
            <index>
                <key name="thread.$id" order="asc" />
                <key name="metadata.participant.$id" order="asc" />
            </index>
        </indexes>

    </mapped-superclass>

</doctrine-mongo-mapping>
