<?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\TicketRepository" name="App\Entity\Ticket">
    <id name="id" type="integer" column="id">
      <generator strategy="AUTO"/>
    </id>

    <field name="dateCreation" type="datetime" column="dateCreation" nullable="true"/>
    <field name="message" type="text" column="message" length="500" nullable="true"/>
    <field name="typeUrgence" type="string" column="typeUrgence" length="255" nullable="true"/>
    <field name="categorie" type="string" column="categorie" length="255" nullable="true"/>
    <field name="messageAuto" type="text" column="messageAuto"  nullable="true"/>
    <field name="numeroIdentification" type="string" column="numeroIdentification" length="255" nullable="true"/>
    <field name="statut" type="string" column="statut" length="255" nullable="true"/>
    <field name="photo" type="string" column="photo" length="255" nullable="true"/>
    <field name="isArchive" type="boolean" nullable="true"/>
    <field name="commentaireCr" type="text" column="commentaireCr" nullable="true" />

    <many-to-one field="espace" target-entity="Espace">
        <join-columns>
            <join-column name="espace_id" referenced-column-name="id" nullable="false" />
        </join-columns>
    </many-to-one>

    <many-to-one field="service" target-entity="Departement">
        <join-columns>
            <join-column name="service_id" referenced-column-name="id" nullable="true" />
        </join-columns>
    </many-to-one>

    <many-to-one field="structure" target-entity="Structure">
        <join-columns>
            <join-column name="structure_id" referenced-column-name="id" nullable="false" />
        </join-columns>
    </many-to-one>

    <many-to-one field="demandeur" target-entity="Personnel">
        <join-columns>
            <join-column name="demandeur_id" referenced-column-name="id" nullable="true" />
        </join-columns>
    </many-to-one>

    <many-to-one field="realisateur" target-entity="Personnel" >
          <join-columns>
              <join-column name="realisateur_id" referenced-column-name="id" nullable="true" />
          </join-columns>
    </many-to-one>

    <many-to-one field="sousCategorie" target-entity="SousCategorie" >
          <join-columns>
              <join-column name="sousCategorie_id" referenced-column-name="id" nullable="true" />
          </join-columns>
    </many-to-one>


    <many-to-many field="materiels" target-entity="Materiel" inversed-by="tickets" fetch="LAZY">
        <join-table name="tickets_materiels">
          <join-columns>
            <join-column name="ticket_id" referenced-column-name="id" on-delete="CASCADE"/>
          </join-columns>
          <inverse-join-columns>
            <join-column name="materiel_id" referenced-column-name="id" on-delete="CASCADE"/>
          </inverse-join-columns>
      </join-table>
    </many-to-many>

  </entity>
</doctrine-mapping>
