<?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\QuestionnaireRepository" name="App\Entity\Questionnaire">
    <id name="id" type="integer" column="id">
      <generator strategy="AUTO"/>
    </id>
    <field name="titre" type="string" column="titre" nullable="false"/>
    <field name="description" type="text" nullable="true" column="description"/>
    <field name="publique" type="boolean" column="publique" nullable="false"/>
    <field name="jours" type="array" column="jours"/>
    <field name="mode" type="string" column="mode" nullable="false"/>
    <field name="dateDebut" type="datetime" column="dateDebut"/>
    <field name="dateFin" type="datetime" column="dateFin"/>

    <many-to-many field="departements" target-entity="Departement" inversed-by="questionnaires" fetch="LAZY">
        <join-table name="departements_questionnaires">
          <join-columns>
            <join-column name="questionnaire_id" referenced-column-name="id" on-delete="CASCADE"/>
          </join-columns>
          <inverse-join-columns>
            <join-column name="departement_id" referenced-column-name="id" on-delete="CASCADE"/>
          </inverse-join-columns>
      </join-table>
    </many-to-many>


    <many-to-many field="agents" target-entity="Personnel" inversed-by="questionnaires" fetch="LAZY">
      <join-table name="agents_questionnaires">
        <join-columns>
          <join-column name="questionnaire_id" referenced-column-name="id"/>
        </join-columns>
        <inverse-join-columns>
          <join-column name="agent_id" referenced-column-name="id"/>
        </inverse-join-columns>
      </join-table>
    </many-to-many>

    <one-to-many field="questions" target-entity="Question" mapped-by="questionnaire" fetch="LAZY">
        <cascade>
            <cascade-persist/>
            <cascade-remove/>
        </cascade>
    </one-to-many>
  </entity>
</doctrine-mapping>
