Subversion Repositories bacoAlunos

Rev

Rev 1547 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
       PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="pt.estgp.estgweb.domain.EventClass" table="event_class" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db" name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="name" type="string"/>
        <property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <property name="eventosGenericos" type="boolean"/>
        <property name="eventosFormacoes" type="boolean"/>
        <property name="managersRole" type="string"/>

        <set name="events" cascade="none" lazy="true">
            <key column="eventClass"/>
            <one-to-many class="pt.estgp.estgweb.domain.EventGeneric"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.EventClassImpl" discriminator-value="EventClassImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.EventGeneric" table="event_generic" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db" name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>

        <!--Controlo-->
        <!--OK--><property name="ativo" type="boolean"/><!--Flag Geral de Finalizacao, Tem de desativar das API's-->
        <!--OK--><property name="dataAberturaFormulario" type="timestamp"/>
        <!--OK--><property name="dataFechoFormulario" type="timestamp"/> <!-- Tem de desativar das API's -->
        <!--OK--><property name="dataPublicacao" type="timestamp"/><!--Usado para API's-->
        <!--OK--><property name="registeredUsersOnly" type="boolean"/>
        <!--OK--><property name="category" type="string"/>
        <!--OK--><property name="subCategory" type="string"/>

        <!--Metadata-->
        <!--OK--><property name="title" type="string"/>
        <!--OK--><property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <!--OK--><property name="observacoes" type="string">
            <column name="observacoes" sql-type="TEXT"/>
        </property>
        <!--OK--><property name="locais" type="string">
            <column name="locais" sql-type="TEXT"/>
        </property>

        <!--OK--><property name="dataInicio" type="timestamp"/>
        <!--OK--><property name="flyerRepositoryStream" type="string"/>
        <!--OK--><property name="preInformation" type="string">
            <column name="preInformation" sql-type="TEXT"/>
        </property>
        <!--OK--><property name="afterRegisterInformation" type="string">
            <column name="afterRegisterInformation" sql-type="TEXT"/>
        </property>


        <!-- Campos Ativos no Registo -->
        <!--Contactos Info Pessoal-->
        <!--<property name="nome" type="boolean"/> já assumido para registo-->
        <!--<property name="mail" type="boolean"/> já assumido para registo-->
        <!--OK--><property name="sexo" type="boolean"/>
        <!--OK--><property name="morada" type="boolean"/> <!--Implica ADDRESS, ZIP, CIDADE-->
        <!--OK--><property name="pais" type="boolean"/>
        <!--OK--><property name="dataNascimento" type="boolean"/>
        <!--OK--><property name="nif" type="boolean"/>
        <!--OK--><property name="bi" type="boolean"/>
        <!--OK--><property name="telefone1" type="boolean"/>
        <!--OK--><property name="telefone2" type="boolean"/>
        <!--OK--><property name="empresa" type="boolean"/>
        <!--OK--><property name="escolaridade" type="boolean"/>
        <!--OK--><property name="profissao" type="boolean"/>

        <!--Pagamentos
           <property name="custoInscricao" type="boolean"/>
           <property name="custoAtas" type="boolean"/>
       -->

        <many-to-one name="owner" class="pt.estgp.estgweb.domain.User" lazy="proxy" outer-join="false"/>
        <many-to-one name="eventClass" class="pt.estgp.estgweb.domain.EventClass" lazy="proxy" outer-join="false"/>

        <set name="eventRecords" cascade="none" lazy="true">
            <key column="event"/>
            <one-to-many class="pt.estgp.estgweb.domain.EventGenericRecord"/>
        </set>

        <subclass name="pt.estgp.estgweb.domain.EventGenericImpl" discriminator-value="EventGenericImpl">
            <subclass name="pt.estgp.estgweb.domain.EventFormacoes">
                <meta attribute="extends">pt.estgp.estgweb.domain.EventGenericImpl</meta>
                <meta attribute="scope-class">public abstract</meta>

                <property name="referencia" type="string"/><!--(Ex: AF201516#02)-->
                <property name="unidadeOrganica" type="string"/><!--(ESTG, ESEP, ...)-->
                <property name="localDeRealizacao" type="string"/><!--(Sala, Laboratório, ...)-->
                <property name="dominio" type="string"/> <!--(Gestão, Informática, Marketing, ...)-->
                <property name="outroDominio" type="string"/>
                <property name="destinatarios" type="string"/>
                <property name="conteudos" type="string">
                    <column name="conteudos" sql-type="MEDIUMTEXT"/>
                </property>

                <property name="status" type="string"/><!--(Em construção, Ativa, Concluída)-->
                <property name="numeroVagas" type="integer"/>
                <property name="duracaoHoras" type="integer"/>
                <property name="ects" type="integer"/>
                <!-- o mesmo da dataInicio <property name="dataRealizacao" type="integer"/>-->
                <property name="diasDuracao" type="integer"/>
                <property name="custoFormacao" type="double"/> <!--(moeda Euros)-->
                <property name="precoFormando" type="double"/> <!--(moeda Euros)-->
                <property name="percentagemMinimaLucro" type="double"/> <!--(%)-->



                <property name="formadores" type="string"/>

                <subclass name="pt.estgp.estgweb.domain.EventFormacoesImpl" discriminator-value="EventFormacoesImpl"/>

            </subclass>
        </subclass>
    </class>

    <class name="pt.estgp.estgweb.domain.EventUser" table="event_user" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db" name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="email" type="string"/>
        <property name="password" type="string"/> <!-- MD5 um user afeta a password sempre que se inscreve mas o email é a ponte para todos os seus registos -->

        <!-- Campos de Registo OS MESMOS QUE EM EventGenericRecord-->

        <!--Contactos Info Pessoal-->
        <!--Obrigatorios-->
        <property name="mail" type="string"/>
        <property name="nome" type="string"/>

        <!--opcionais-->
        <property name="sexo" type="string"/>

        <property name="morada" type="string"/>
        <property name="zip" type="string"/>
        <property name="cidade" type="string"/>


        <property name="dataNascimento" type="string"/>
        <property name="nif" type="string"/>
        <property name="bi" type="string"/>
        <property name="telefone1" type="string"/>
        <property name="telefone2" type="string"/>

        <property name="empresa" type="string"/>
        <property name="pais" type="string"/>
        <property name="escolaridade" type="string"/> <!--12 ano, Bacharelato, Licenciatura, Mestrado, Doutoramento, Outro-->
        <property name="profissao" type="string"/>
        <!--#########################################-->

        <many-to-one name="registeredUserAssociated" class="pt.estgp.estgweb.domain.User" lazy="proxy" outer-join="false"/>
        <subclass name="pt.estgp.estgweb.domain.EventUserImpl" discriminator-value="EventUserImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.EventGenericRecord" table="event_generic_record" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp source="db" name="updateDate" unsaved-value="null"/> <!-- devem apagados registos sem confirmacao de email após 48 horas -->
        <property name="saveDate" type="timestamp"/>
        <property name="password" type="string"/> <!-- MD5 um user afeta a password sempre que se inscreve mas o email é a ponte para todos os seus registos -->

        <!-- Campos de Registo -->

        <!--Contactos Info Pessoal-->
        <!--Obrigatorios-->
        <property name="mail" type="string"/>
        <property name="nome" type="string"/>

        <!--opcionais-->
        <property name="sexo" type="string"/>

        <property name="morada" type="string"/>
        <property name="zip" type="string"/>
        <property name="cidade" type="string"/>


        <property name="dataNascimento" type="string"/>
        <property name="nif" type="string"/>
        <property name="bi" type="string"/>
        <property name="telefone1" type="string"/>
        <property name="telefone2" type="string"/>

        <property name="empresa" type="string"/>
        <property name="pais" type="string"/>
        <property name="escolaridade" type="string"/> <!--12 ano, Bacharelato, Licenciatura, Mestrado, Doutoramento, Outro-->
        <property name="profissao" type="string"/>



        <!--Controlo-->
        <property name="chaveConfirmacao" type="string"/><!--Chave enviada ao user no email-->

        <property name="emailConfirmado" type="boolean"/><!--fica verdadeiro apenas apos verificacao do email-->

        <property name="confirmado" type="boolean"/>
        <property name="observacoes" type="string">
            <column name="observacoes" sql-type="TEXT"/>
        </property>
        <property name="pago" type="boolean"/>
        <property name="transacaoInfo" type="string">
            <column name="transacaoInfo" sql-type="TEXT"/>
        </property>

        <many-to-one name="event" class="pt.estgp.estgweb.domain.EventGeneric" lazy="proxy" outer-join="false"/>
        <many-to-one name="eventUserAssociated" class="pt.estgp.estgweb.domain.EventUser" lazy="proxy" outer-join="false"/>

        <subclass name="pt.estgp.estgweb.domain.EventGenericRecordImpl" discriminator-value="EventGenericRecordImpl"/>
    </class>

</hibernate-mapping>