<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                          https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

    <entity name="Doctrine\Tests\Models\Company\CompanyContract" table="company_contracts" inheritance-type="SINGLE_TABLE">

        <discriminator-map>
            <discriminator-mapping value="fix"          class="CompanyFixContract" />
            <discriminator-mapping value="flexible"     class="CompanyFlexContract" />
            <discriminator-mapping value="flexultra"    class="CompanyFlexUltraContract" />
        </discriminator-map>

        <entity-listeners>
            <entity-listener class="CompanyContractListener">
                <lifecycle-callback type="preFlush"      method="preFlushHandler"/>
                <lifecycle-callback type="postLoad"      method="postLoadHandler"/>
                
                <lifecycle-callback type="postPersist"   method="postPersistHandler"/>
                <lifecycle-callback type="prePersist"    method="prePersistHandler"/>

                <lifecycle-callback type="postUpdate"    method="postUpdateHandler"/>
                <lifecycle-callback type="preUpdate"     method="preUpdateHandler"/>

                <lifecycle-callback type="postRemove"    method="postRemoveHandler"/>
                <lifecycle-callback type="preRemove"     method="preRemoveHandler"/>
            </entity-listener>
        </entity-listeners>

        <id name="id" type="integer" column="id">
            <generator strategy="AUTO"/>
        </id>
        
        <field name="completed" column="completed" type="boolean"/>

        <!-- Other mappings -->
    </entity>

</doctrine-mapping>
