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

    <field name="numSerie" type="string" column="numSerie" nullable="true"/>
    <field name="numInventaire" type="string" column="numInventaire" nullable="true"/>
    <field name="nom" type="string" column="nom" length="255" nullable="true"/>
    <field name="description" type="text" column="description" nullable="true"/>
    <field name="marque" type="string" column="marque" length="255" nullable="true"/>
    <field name="statut" type="string" column="statut" length="255" nullable="true"/>
    <field name="dateAchat" type="datetime" column="dateAchat" nullable="true"/>
    <field name="dateFinDeGarantie" type="datetime" column="dateFinDeGarantie" nullable="true"/>
    <field name="dureeGarantieEnJours" type="integer" column="dureeGarantieEnJours" nullable="true"/>
    <field name="version" type="string" column="version" length="255" nullable="true"/>
    <field name="appartenance" type="string" column="appartenance" length="255" nullable="true"/>
    <field name="code" type="string" column="code" length="255" nullable="true"/>
    <field name="type" type="string" column="type" length="255" nullable="false"/>
    <field name="typePrecis" type="string" column="typePrecis" length="255" nullable="false"/>
    <field name="couleur" type="string" column="couleur" length="255" nullable="true"/>
    <field name="taille" type="string" column="taille" length="255" nullable="true"/>
    <field name="forme" type="string" column="forme" length="255" nullable="true"/>
    <field name="tiroir" type="string" column="tiroir" length="255" nullable="true"/>

    <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="departement" target-entity="Departement">
        <join-columns>
            <join-column name="departement_id" referenced-column-name="id" nullable="true" />
        </join-columns>
    </many-to-one>
    <many-to-one field="espace" target-entity="Espace" inversed-by="materiels">
        <join-columns>
            <join-column name="espace_id" referenced-column-name="id" nullable="true" />
        </join-columns>
    </many-to-one>
    <many-to-one field="fournisseur" target-entity="Fournisseur">
        <join-columns>
            <join-column name="fournisseur_id" referenced-column-name="id" nullable="true" />
        </join-columns>
    </many-to-one>
    <many-to-one field="contrat" target-entity="ContratMateriel" inversed-by="materiels">
        <join-columns>
            <join-column name="contrat_id" referenced-column-name="id" nullable="true" />
        </join-columns>
    </many-to-one>
    <one-to-many field="reservation" target-entity="ReservationMateriel" mapped-by="materiels">
        <cascade>
            <cascade-persist/>
        </cascade>
    </one-to-many>


    <many-to-many field="tickets" target-entity="App\Entity\Ticket" mapped-by="materiels" fetch="LAZY"/>


  </entity>
</doctrine-mapping>
