<?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 http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
  <entity repository-class="App\Entity\ControleRepository" name="App\Entity\Controle">
    <id name="id" type="integer" column="id">
      <generator strategy="AUTO"/>
    </id>
    <field name="date" type="datetime" column="date"/>
    <field name="commentaire" type="text" column="commentaire" nullable="true"/>
    <field name="nom" type="string" column="nom" length="255" nullable="true"/>
    <field name="nature" type="string" column="nature" length="255"/>
    <field name="type" type="string" column="type" length="255"/>
    <field name="nomPrenomEvaluateur" type="string" column="nom_prenom_evaluateur" nullable="true"/>
    <field name="sigOperateur" type="text" column="sigOperateur"/>
    <field name="sigEvaluateur" type="text" column="sigEvaluateur" nullable="true"/>
    <field name="scoreTotal" type="float" column="scoreTotal" nullable="true"/>
    <field name="maxScoreTotal" type="float" column="maxScoreTotal" nullable="true"/>
    <one-to-many field="items" target-entity="ItemControle" mapped-by="controle">
        <cascade>
            <cascade-persist/>
            <cascade-remove/>
        </cascade>
    </one-to-many>
    <many-to-one field="etablissement" target-entity="Structure" inversed-by="controles">
      <join-columns>
          <join-column name="structure_id" referenced-column-name="id" nullable="false" />
      </join-columns>
    </many-to-one>
    <many-to-one field="operateur" target-entity="App\Entity\Personnel">
      <join-columns>
        <join-column name="operateur_id" referenced-column-name="id" nullable="false"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="agent" target-entity="App\Entity\Personnel">
      <join-columns>
        <join-column name="agent_id" referenced-column-name="id" nullable="true"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="espace" target-entity="App\Entity\Espace">
      <join-columns>
        <join-column name="espace_id" referenced-column-name="id" nullable="true"/>
      </join-columns>
    </many-to-one>
    <many-to-many field="espaces" target-entity="App\Entity\Espace" inversed-by="controles">
        <join-table name="controles_espaces">
          <join-columns>
            <join-column name="controle_id" referenced-column-name="id" />
          </join-columns>
          <inverse-join-columns>
            <join-column name="espace_id" referenced-column-name="id"/>
          </inverse-join-columns>
      </join-table>
    </many-to-many>
    <many-to-many field="comments" target-entity="App\Entity\ControleComment" inversed-by="controles">
        <join-table name="controles_comments">
          <join-columns>
            <join-column name="controle_id" referenced-column-name="id" />
          </join-columns>
          <inverse-join-columns>
            <join-column name="comment_id" referenced-column-name="id"/>
          </inverse-join-columns>
      </join-table>
    </many-to-many>
    <many-to-one field="model" target-entity="App\Entity\ControleModel" inversed-by="controles">
      <join-columns>
        <join-column name="model_id" referenced-column-name="id" nullable="true"/>
      </join-columns>
    </many-to-one>
  </entity>
</doctrine-mapping>
