<?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 name="geosapiens\propesqBundle\Entity\Registro" table="registro" inheritance-type="JOINED"
repository-class="geosapiens\propesqBundle\Repository\RegistroRepository">
    <change-tracking-policy>DEFERRED_IMPLICIT</change-tracking-policy>
    <id name="id" type="integer" column="id">
      <generator strategy="SEQUENCE"/>
    </id>
    <field name="datChegada" type="datetime" column="dat_chegada"/>
    <field name="datEntrevista" type="datetime" column="dat_entrevista"/>
    <field name="datInclusao" type="datetime" column="dat_inclusao"/>
    <field name="datEdicao" type="datetime" column="dat_edicao"/>
    <field name="datAnalise" type="datetime" column="dat_analise"/>
    <field name="datDescarga" type="date" column="dat_descarga"/>
    <field name="indSituacao" type="smallint" column="ind_situacao"/>
    <field name="indValidado" type="smallint" column="ind_validado"/>
    <field name="numSegundosDigitacao" type="string" column="num_segundos_digitacao"/>
    <field name="txtObservacao" type="text" column="txt_observacao"/>
    <field name="geoLocalizacaoInclusao" type="geometry" column="geo_localizacao_inclusao"/>
    <field name="numPrecisaoInclusao" type="decimal"  precision="5"   column="num_precisao_inclusao" />
    <field name="datInclusaoMob" type="datetime" column="dat_inclusao_mob"/>
    <field name="geoLocalizacaoEdicao" type="geometry" column="geo_localizacao_edicao"/>
    <field name="numPrecisaoEdicao" type="decimal"  precision="5"   column="num_precisao_edicao" />
    <field name="datEdicaoMob" type="datetime" column="dat_edicao_mob"/>
    <field name="txtIdentificadorMobile" type="string" column="txt_identificador_mobile" length="40"/>
    <one-to-one field="codLogEventosSinc" target-entity="geosapiens\propesqBundle\Entity\LogEventosSinc">
      <join-column name="cod_acesso_propesqmob_sinc" referenced-column-name="id" />
    </one-to-one>
    <many-to-one field="codLocalDescarga" target-entity="LocalDescarga" orphan-removal="">
      <join-columns>
        <join-column name="cod_local_descarga" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="codSuspeita" target-entity="Suspeita" orphan-removal="">
      <join-columns>
        <join-column name="cod_suspeita" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="codRespInclusao" target-entity="Usuario" orphan-removal="">
      <join-columns>
        <join-column name="cod_resp_inclusao" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="codRespEdicao" target-entity="Usuario" orphan-removal="">
      <join-columns>
        <join-column name="cod_responsavel_edicao" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="codRespAnalise" target-entity="Usuario" orphan-removal="">
      <join-columns>
        <join-column name="cod_resp_analise" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="codAgenteMonitor" target-entity="AgenteMonitor" orphan-removal="">
      <join-columns>
        <join-column name="cod_agente_monitor" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="codFonteDado" target-entity="FonteDado" orphan-removal="">
      <join-columns>
        <join-column name="cod_fonte_dado" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <many-to-one field="codUnidadeProdutiva" target-entity="UnidadeProdutiva" orphan-removal="">
      <join-columns>
        <join-column name="cod_unidade_produtiva" referenced-column-name="id"/>
      </join-columns>
    </many-to-one>
    <one-to-many field="unidadesProdutivas" target-entity="RegistroUnidadeProdutivaParceira" mapped-by="codRegistro" fetch="LAZY">
        <cascade><cascade-persist /></cascade>
    </one-to-many>
    <one-to-many field="aparelhosPesca" target-entity="RegistroAparelhoPesca" mapped-by="codRegistro" fetch="LAZY">
      <order-by>
        <order-by-field name="id" direction="ASC" />
      </order-by>
        <cascade><cascade-persist /></cascade>
    </one-to-many>
    <one-to-many field="vinculos" target-entity="RegistroPessoaVinculo" mapped-by="codRegistro" fetch="LAZY">
        <cascade><cascade-persist /></cascade>
    </one-to-many>
    <one-to-one target-entity="RegistroArea"  mapped-by="codRegistro" field="registroArea">
        <cascade><cascade-persist /></cascade>
    </one-to-one>
    <lifecycle-callbacks/>
	<discriminator-column name="ind_tipo" type="smallint" />
	<discriminator-map>
        <discriminator-mapping value="1" class="RegistroEntrevista" />
        <discriminator-mapping value="2" class="RegistroFicha" />
        <discriminator-mapping value="3" class="RegistroMapaBordo" />
    </discriminator-map>
  </entity>
</doctrine-mapping>
