This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
|
||||
<form formKey="formCadastroJogos" width="100%" height="100%">
|
||||
<name>Cadastro de jogos</name>
|
||||
<description>Painel para cadastro de jogos</description>
|
||||
|
||||
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
|
||||
<form width="100%" height="100%" formKey="formTeste">
|
||||
<description></description>
|
||||
<initScript language="JavaScript">
|
||||
<![CDATA[
|
||||
|
||||
var lib_cadastro_padrao = libService.loadScript("lib_cadastro_padrao");
|
||||
|
||||
var config_jogos = {
|
||||
@@ -149,7 +153,7 @@
|
||||
lib_msg.showNotification({
|
||||
type: lib_msg.notificationType.tray,
|
||||
caption: "Erro!",
|
||||
msg: "Selecione um jogo para ver as avaliações",
|
||||
msg: "Selecione um jogo para ver as avaliações.",
|
||||
position: lib_msg.notificationPosition.bottom_right,
|
||||
});
|
||||
return;
|
||||
@@ -169,8 +173,8 @@
|
||||
engine.setGlobalVariable("resetPanelGames", resetPanelGames);
|
||||
}
|
||||
]]>
|
||||
|
||||
</initScript>
|
||||
|
||||
<components>
|
||||
<VerticalLayout width="100%" height="100%" align="MIDDLE_RIGHT">
|
||||
|
||||
@@ -210,7 +214,7 @@
|
||||
|
||||
if(engine.isValid()){
|
||||
|
||||
engine.getField("txfCodigoJogo").setValue(engine.getField("dbtJogos").getValue());
|
||||
engine.getField("txfCodigo").setValue(engine.getField("dbtJogos").getValue());
|
||||
var config_avaliacoes = engine.getGlobalVariable("config_avaliacoes");
|
||||
var lib = libService.loadScript("lib_cadastro_padrao");
|
||||
var id = engine.getField("txfCodigoAvaliacao").getValue();
|
||||
@@ -240,19 +244,22 @@
|
||||
</VerticalLayout>
|
||||
</WindowLayout>
|
||||
|
||||
|
||||
<WindowLayout id="wltListaAvaliacoes" windowModal="true" windowHeight="80%"
|
||||
windowWidth="80%">
|
||||
|
||||
<VerticalLayout spacing="true" margin="true" height="100%">
|
||||
<Label id="lblTitle"><value>Avaliações</value></Label>
|
||||
<Label id="lblTitle">
|
||||
<value>Avaliações</value>
|
||||
</Label>
|
||||
<DBTable id="dbtAvaliacoes" type="string" width="100%"
|
||||
gridSelectable="true" selectable="true" height="100%"
|
||||
gridSelectable="true" selectable="false" height="100%"
|
||||
expandRatio="0.2" showRowCount="true">
|
||||
<datasource>
|
||||
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
|
||||
<sqlBuilderDataSource connection-key="vitruvio"
|
||||
language="JavaScript">
|
||||
<![CDATA[
|
||||
function buildSQL(_){
|
||||
var txfPesquisa = engine.getField("txfPesquisaNome").getValue();
|
||||
var txfPesquisa = engine.getField("txfPesquisaJogo").getValue();
|
||||
var sqlBase = "SELECT * FROM TB_MATHEUS_MEDEIROS_AVALIACOES ORDER BY CODIGO";
|
||||
var id_jogo = engine.getField("dbtJogos").getValue();
|
||||
if(id_jogo != null){
|
||||
@@ -265,12 +272,14 @@
|
||||
</datasource>
|
||||
<key-field>CODIGO</key-field>
|
||||
<columns>
|
||||
|
||||
<column name="CODIGO" caption="ID" />
|
||||
<column name="NOME" caption="NOME" />
|
||||
<column name="EMAIL" caption="E-MAIL" />
|
||||
<column name="COMENTARIO" caption="COMENTÁRIO" />
|
||||
<column name="NOTA" caption="NOTA" />
|
||||
<column name="DATA_AVALIACAO" caption="DATA DE AVALIAÇÃO" />
|
||||
|
||||
<generated name="EDITAR" caption="EDITAR" align="CENTER">
|
||||
<scriptColumnGenerator language="JavaScript">
|
||||
<![CDATA[
|
||||
@@ -337,21 +346,28 @@
|
||||
</columns>
|
||||
</DBTable>
|
||||
<HorizontalLayout spacing="true" align="MIDDLE_RIGHT">
|
||||
<ButtonWidget id="btnVoltarAvaliacoes" style="BLACK" caption="Voltar" defaultIcon="BACK">
|
||||
<onClickScript language="JavaScript"><![CDATA[
|
||||
<ButtonWidget id="btnVoltarAvaliacoes" style="BLACK" caption="Voltar"
|
||||
width="20%" align="MIDDLE_RIGHT" defaultIcon="BACK">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run() {
|
||||
engine.getLayout("wltListaAvaliacoes").closeWindow();
|
||||
}
|
||||
]]></onClickScript>
|
||||
]]>
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
<ButtonWidget id="btnAdicionarAvaliacoes" style="GREEN" caption="Nova Avaliação" defaultIcon="ADD">
|
||||
<onClickScript language="JavaScript"><![CDATA[
|
||||
<ButtonWidget id="btnAdicionarAvaliacoes" style="GREEN"
|
||||
caption="Nova Avaliação"
|
||||
width="20%" align="MIDDLE_RIGHT" defaultIcon="ADD">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run (){
|
||||
engine.getGlobalVariable("resetPanelReviews")();
|
||||
engine.getLayout("wltCriarAvaliacoes").showWindow();
|
||||
engine.getLayout("wltListaAvaliacoes").closeWindow();
|
||||
}
|
||||
]]></onClickScript>
|
||||
]]>
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
</HorizontalLayout>
|
||||
</VerticalLayout>
|
||||
@@ -359,15 +375,15 @@
|
||||
|
||||
<CrudPanel id="pnlListaJogos" width="100%" height="100%" visible="true">
|
||||
<Header backgroundColor="ORANGE">
|
||||
<Caption>Cadastro de Jogos</Caption>
|
||||
<SubCaption>Cadastro de jogos</SubCaption>
|
||||
<Caption>Avaliações dos jogos</Caption>
|
||||
<SubCaption>Os melhores jogos já feitos</SubCaption>
|
||||
</Header>
|
||||
<Section height="100%" caption="Jogos" subCaption="Veja todos os jogos"
|
||||
id="secDadosJogo">
|
||||
<VerticalLayout width="100%" height="100%" align="MIDDLE_CENTER"
|
||||
spacing="true">
|
||||
<HorizontalLayout width="100%" spacing="true">
|
||||
<TextField expandRatio="0.8" width="100%" id="txfPesquisaNome"
|
||||
<TextField expandRatio="0.8" width="100%" id="txfPesquisaJogo"
|
||||
caption="Pesquise pelo nome do jogo" type="string"
|
||||
immediate="true">
|
||||
|
||||
@@ -383,23 +399,26 @@
|
||||
</valueChange>
|
||||
</events>
|
||||
</TextField>
|
||||
<ButtonWidget id="btnPesquisar" caption="Pesquisar" defaultIcon="SEARCH" style="BLACK">
|
||||
<ButtonWidget defaultIcon="SEARCH" id="btnPesquisar"
|
||||
caption="Pesquisar" style="BLACK">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run() {
|
||||
engine.getField("dbtJogos").refresh();
|
||||
}
|
||||
]]>
|
||||
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
</HorizontalLayout>
|
||||
<DBTable id="dbtJogos" align="MIDDLE_CENTER" width="100%" height="100%" type="string" expandRatio="0.5" showRowCount="true" drawRefreshButton="true" gridSelectable="true" selectable="true">
|
||||
<DBTable id="dbtJogos" align="MIDDLE_CENTER" type="string" width="100%"
|
||||
gridSelectable="true" height="100%"
|
||||
expandRatio="0.5" showRowCount="true" drawRefreshButton="true">
|
||||
<datasource>
|
||||
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
|
||||
<sqlBuilderDataSource connection-key="vitruvio"
|
||||
language="JavaScript">
|
||||
<![CDATA[
|
||||
function buildSQL(_){
|
||||
var txfPesquisa = engine.getField("txfPesquisaNome").getValue();
|
||||
var txfPesquisa = engine.getField("txfPesquisaJogo").getValue();
|
||||
|
||||
var sqlBase = "SELECT J.CODIGO, J.TITULO, J.GENERO, J.ANO_LANCAMENTO, J.PRODUTORA, COALESCE(ROUND(AVG(A.NOTA), 2), 0) AS NOTA_MEDIA, J.DESCRICAO FROM TB_MATHEUS_MEDEIROS_JOGOS J LEFT JOIN TB_MATHEUS_MEDEIROS_AVALIACOES A ON J.CODIGO = A.ID_JOGO";
|
||||
|
||||
@@ -415,9 +434,7 @@
|
||||
]]>
|
||||
</sqlBuilderDataSource>
|
||||
</datasource>
|
||||
<key-field>
|
||||
CODIGO
|
||||
</key-field>
|
||||
<key-field>CODIGO</key-field>
|
||||
<columns>
|
||||
<column name="CODIGO" caption="ID" />
|
||||
<column name="TITULO" caption="TÍTULO" />
|
||||
@@ -426,7 +443,8 @@
|
||||
<column name="PRODUTORA" caption="PRODUTORA" />
|
||||
<column name="NOTA_MEDIA" caption="NOTA MÉDIA" />
|
||||
<column name="DESCRICAO" caption="DESCRIÇÃO" />
|
||||
<generated name="AVALIACOES" caption="AVALIAÇÕES" align="CENTER">
|
||||
|
||||
<generated name="AVALIACOES" caption="AVALIACOES" align="CENTER">
|
||||
<scriptColumnGenerator language="JavaScript">
|
||||
<![CDATA[
|
||||
function Generator() {
|
||||
@@ -438,6 +456,7 @@
|
||||
var idJogoSelecionado = engine.getField("dbtJogos").getValue();
|
||||
engine.getGlobalVariable("showTableReviews")(itemId);
|
||||
}, "star");
|
||||
|
||||
return btn;
|
||||
}
|
||||
}
|
||||
@@ -454,13 +473,15 @@
|
||||
var btn = comp.buttonIcon("Editar", function () {
|
||||
var id = itemId;
|
||||
engine.getField("txfCodigo").setValue(id);
|
||||
|
||||
if (id != null) {
|
||||
engine.getGlobalVariable("changeCrudPanel")("cadastroJogo");
|
||||
var config_jogos = engine.getGlobalVariable('config_jogos');
|
||||
var lib = libService.loadScript('lib_cadastro_padrao');
|
||||
lib.fncCarregarCampos(config_jogos, id);
|
||||
var sql = lib.fncCarregarCampos(config_jogos, id);
|
||||
}
|
||||
}, "pencil");
|
||||
|
||||
return btn;
|
||||
}
|
||||
}
|
||||
@@ -509,7 +530,8 @@
|
||||
</columns>
|
||||
</DBTable>
|
||||
<HorizontalLayout align="MIDDLE_RIGHT" spacing="true">
|
||||
<ButtonWidget id="btnNovoJogo" caption="Novo Jogo" defaultIcon="ADD" style="GREEN">
|
||||
<ButtonWidget defaultIcon="ADD" id="btnAdicionarJogo" style="GREEN"
|
||||
caption="Novo">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run (){
|
||||
@@ -518,7 +540,8 @@
|
||||
]]>
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
<ButtonWidget id="btnVerAvaliacoes" caption="Ver Avaliações" defaultIcon="STAR" style="BLUE">
|
||||
<ButtonWidget defaultIcon="SAVE" id="btnVerAvaliacoes" style="RED"
|
||||
caption="Avaliações">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run (){
|
||||
@@ -533,28 +556,39 @@
|
||||
</VerticalLayout>
|
||||
</Section>
|
||||
</CrudPanel>
|
||||
|
||||
<CrudPanel id="pnlCadastroJogo" width="100%" height="100%" visible="false">
|
||||
<Header>
|
||||
<Caption> Cadastro de um novo jogo</Caption>
|
||||
<SubCaption>Cadastro de jogo</SubCaption>
|
||||
<Header backgroundColor="ORANGE">
|
||||
<Caption>Cadastro de jogos</Caption>
|
||||
<SubCaption>Dados para cadastro de jogos</SubCaption>
|
||||
</Header>
|
||||
<Section caption="Cadastro de novo Jogo" subCaption="Insira os dados do jogo" width="100%" height="100%" >
|
||||
<VerticalLayout width="100%" height="100%" align="MIDDLE_CENTER" spacing="true">
|
||||
<Panel id="pnlDadosJogo" width="100%" height="100%" margin="true" >
|
||||
<Section caption="Novo jogo" subCaption="Informe os dados abaixo" width="100%">
|
||||
|
||||
<VerticalLayout width="100%" height="100%" align="MIDDLE_CENTER"
|
||||
spacing="true">
|
||||
<Panel id="pnlDadosJogos" width="100%" height="100%" caption="Dados do Jogo" margin="true">
|
||||
<VerticalLayout caption="Dados do Jogo" width="100%" spacing="true">
|
||||
<TextField id="txfCodigo" caption="Código" type="number" width="100%" enabled="false" visible="false"/>
|
||||
<NumericField id="txfNotaMedia" caption="Nota Média" type="number" width="100%" enabled="false" visible="false"/>
|
||||
<TextField id="txfTitulo" caption="Título" type="string" width="100%" required="true" minLength="3"/>
|
||||
<ComboBox id="cbbGenero" type="string" caption="Gênero" updatable="false" allowNullSelection="true" width="100%" required="true">
|
||||
<entry key="ACAO" value="Ação"/>
|
||||
<entry key="AVENTURA" value="Aventura"/>
|
||||
<entry key="RPG" value="RPG"/>
|
||||
<entry key="ESPORTES" value="Esportes"/>
|
||||
<entry key="ESTRATEGIA" value="Estratégia"/>
|
||||
<entry key="CORRIDA" value="Corrida"/>
|
||||
<entry key="Sobrevivencia" value="Sobrevivência"/>
|
||||
|
||||
<TextField id="txfCodigo" caption="Código" type="number"
|
||||
width="100%" enabled="false" visible="false" />
|
||||
<NumericField id="txfNotaMedia" caption="Nota média"
|
||||
type="number"
|
||||
width="100%" enabled="false" visible="false" />
|
||||
<TextField id="txfTitulo" caption="Título" type="string"
|
||||
width="100%"
|
||||
required="true" minLength="3" maxLength="100" />
|
||||
<ComboBox id="cbbGenero" allowNullSelection="true"
|
||||
caption="Gênero" description="ComboBox Exemplo"
|
||||
updatable="false" required="true"
|
||||
visible="true" type="string" width="100%">
|
||||
<entry value="Ação" key="Ação" />
|
||||
<entry value="Aventura" key="Aventura" />
|
||||
<entry value="Terror" key="Terror" />
|
||||
<entry value="Sobrevivência" key="Sobrevivência" />
|
||||
<entry value="Infântil" key="Infântil" />
|
||||
</ComboBox>
|
||||
<TextField id="txfAnoLancamento" caption="Ano de Lançamento" type="number" width="100%" required="true">
|
||||
<TextField id="txfAnoLancamento" caption="Ano de Lançamento"
|
||||
type="number" width="100%" required="true" maxLength="4">
|
||||
<validation>
|
||||
<script language="JavaScript">
|
||||
<![CDATA[
|
||||
@@ -582,21 +616,15 @@
|
||||
</script>
|
||||
</validation>
|
||||
</TextField>
|
||||
<TextField id="txfProdutora" caption="Produtora" type="string" width="100%" required="true" maxLength="50"/>
|
||||
<TextArea id="txaDescricao" caption="Descrição" type="string" width="100%" maxLength="500"/>
|
||||
<TextField id="txfProdutora" caption="Produtora" type="string"
|
||||
width="100%" required="true" maxLength="50" />
|
||||
<TextArea id="txaDescricao" caption="Descrição do Jogo"
|
||||
type="string" width="100%" height="" maxLength="500" />
|
||||
</VerticalLayout>
|
||||
</Panel>
|
||||
<HorizontalLayout align="MIDDLE_RIGHT" spacing="true" >
|
||||
<ButtonWidget id="btnVoltar" caption="Voltar" defaultIcon="BACK" style="BLACK">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run() {
|
||||
engine.getGlobalVariable("changeCrudPanel")("listaJogos");
|
||||
}
|
||||
]]>
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
<ButtonWidget id="btnLimpar" caption="Limpar" defaultIcon="REMOVE" style="BLUE">
|
||||
<HorizontalLayout align="MIDDLE_RIGHT" spacing="true">
|
||||
<ButtonWidget id="btnLimpar" caption="Limpar" defaultIcon="REFRESH"
|
||||
style="ORANGE">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run(){
|
||||
@@ -607,7 +635,8 @@
|
||||
]]>
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
<ButtonWidget id="btnSalvarJogo" caption="Salvar" defaultIcon="SAVE" style="GREEN">
|
||||
<ButtonWidget id="btnSalvar" caption="Salvar" defaultIcon="SAVE"
|
||||
style="BLUE">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run() {
|
||||
@@ -625,7 +654,7 @@
|
||||
lib_msg.showNotification({
|
||||
type: lib_msg.notificationType.tray,
|
||||
caption: "Sucesso!",
|
||||
msg: "O jogo foi gravado com sucesso!",
|
||||
msg: "O jogo foi gravado com sucesso",
|
||||
position: lib_msg.notificationPosition.bottom_right,
|
||||
});
|
||||
}
|
||||
@@ -634,13 +663,21 @@
|
||||
]]>
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
<ButtonWidget id="btnVoltar" caption="Voltar" defaultIcon="BACK"
|
||||
style="BLACK">
|
||||
<onClickScript language="JavaScript">
|
||||
<![CDATA[
|
||||
function run() {
|
||||
engine.getGlobalVariable("changeCrudPanel")("listaJogos");
|
||||
}
|
||||
]]>
|
||||
</onClickScript>
|
||||
</ButtonWidget>
|
||||
</HorizontalLayout>
|
||||
</VerticalLayout>
|
||||
</Section>
|
||||
|
||||
</CrudPanel>
|
||||
</VerticalLayout>
|
||||
|
||||
</components>
|
||||
</form>
|
||||
</panel-form>
|
||||
|
||||
@@ -1,79 +1,169 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
<databaseChangeLog
|
||||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
|
||||
xsi:schemaLocation="
|
||||
http://www.liquibase.org/xml/ns/dbchangelog-ext
|
||||
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
|
||||
http://www.liquibase.org/xml/ns/dbchangelog
|
||||
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
|
||||
|
||||
|
||||
<changeSet author="matheus.medeiros" id="matheus.medeiros-drop">
|
||||
|
||||
<sql>
|
||||
DROP TABLE IF EXISTS TB_MATHEUS_MEDEIROS_AVALIACOES;
|
||||
DROP TABLE IF EXISTS TB_MATHEUS_MEDEIROS_JOGOS;
|
||||
</sql>
|
||||
|
||||
</changeSet>
|
||||
|
||||
|
||||
<changeSet author="matheus.medeiros" id="matheus.medeiros-drop-sequences">
|
||||
|
||||
<sql>
|
||||
DROP SEQUENCE IF EXISTS TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ;
|
||||
DROP SEQUENCE IF EXISTS TB_MATHEUS_MEDEIROS_JOGOS_SEQ;
|
||||
</sql>
|
||||
|
||||
</changeSet>
|
||||
|
||||
|
||||
<changeSet author="matheus.medeiros" id="matheus.medeiros-1">
|
||||
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
||||
<not>
|
||||
<tableExists tableName="TB_MATHEUS_MEDEIROS_JOGOS" />
|
||||
</not>
|
||||
</preConditions>
|
||||
|
||||
<sql endDelimiter=";" splitStatements="true" stripComments="false">CREATE TABLE TB_MATHEUS_MEDEIROS_JOGOS (
|
||||
CODIGO NUMERIC(10) NOT NULL,
|
||||
TITULO VARCHAR(150) NOT NULL,
|
||||
GENERO VARCHAR(30) NOT NULL,
|
||||
ANO_LANCAMENTO NUMERIC(4) NOT NULL,
|
||||
PRODUTORA VARCHAR(50) NOT NULL,
|
||||
DESCRICAO VARCHAR(500) NOT NULL,
|
||||
CONSTRAINT PK_MM_JOGOS PRIMARY KEY (CODIGO),
|
||||
CONSTRAINT CK_MM_JOGOS_ANO
|
||||
CHECK (ANO_LANCAMENTO BETWEEN 1970 AND EXTRACT(YEAR FROM CURRENT_DATE)),
|
||||
CONSTRAINT CK_MM_JOGOS_TITULO
|
||||
CHECK (LENGTH(TITULO) BETWEEN 3 AND 100)
|
||||
);
|
||||
</sql>
|
||||
<sql>
|
||||
CREATE SEQUENCE TB_MATHEUS_MEDEIROS_JOGOS_SEQ
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
CACHE 1
|
||||
NO CYCLE;
|
||||
</sql>
|
||||
|
||||
</changeSet>
|
||||
|
||||
|
||||
<changeSet author="matheus.medeiros" id="matheus.medeiros-2">
|
||||
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
||||
<not>
|
||||
<sequenceExists sequenceName="TB_MATHEUS_MEDEIROS_JOGOS_SEQ" />
|
||||
</not>
|
||||
</preConditions>
|
||||
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
||||
CREATE SEQUENCE TB_MATHEUS_MEDEIROS_JOGOS_SEQ
|
||||
START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE;
|
||||
</sql>
|
||||
</changeSet>
|
||||
|
||||
<changeSet author="matheus.medeiros" id="matheus.medeiros-4">
|
||||
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
||||
<not>
|
||||
<tableExists tableName="TB_MATHEUS_MEDEIROS_AVALIACOES" />
|
||||
</not>
|
||||
</preConditions>
|
||||
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
||||
CREATE TABLE TB_MATHEUS_MEDEIROS_AVALIACOES (
|
||||
CODIGO NUMERIC(10) NOT NULL,
|
||||
NOME VARCHAR(100) NOT NULL,
|
||||
EMAIL VARCHAR(150) NOT NULL,
|
||||
COMENTARIO VARCHAR(1000) NOT NULL,
|
||||
NOTA NUMERIC(4,2) NOT NULL,
|
||||
DATA_AVALIACAO DATE DEFAULT CURRENT_DATE NOT NULL,
|
||||
ID_JOGO NUMERIC(10) NOT NULL,
|
||||
CONSTRAINT PK_MM_AVALIACOES PRIMARY KEY (CODIGO),
|
||||
CONSTRAINT FK_MM_AVAL_JOGO
|
||||
FOREIGN KEY (ID_JOGO)
|
||||
REFERENCES TB_MATHEUS_MEDEIROS_JOGOS (CODIGO),
|
||||
CONSTRAINT CK_MM_AVAL_NOTA
|
||||
CHECK (NOTA BETWEEN 0 AND 10)
|
||||
);</sql>
|
||||
<sql>
|
||||
CREATE TABLE TB_MATHEUS_MEDEIROS_JOGOS (
|
||||
|
||||
CODIGO
|
||||
NUMERIC(10)
|
||||
DEFAULT NEXTVAL('TB_MATHEUS_MEDEIROS_JOGOS_SEQ')
|
||||
NOT NULL,
|
||||
|
||||
TITULO
|
||||
VARCHAR(100)
|
||||
NOT NULL,
|
||||
|
||||
GENERO
|
||||
VARCHAR(30)
|
||||
NOT NULL,
|
||||
|
||||
ANO_LANCAMENTO
|
||||
NUMERIC(4)
|
||||
NOT NULL,
|
||||
|
||||
PRODUTORA
|
||||
VARCHAR(50)
|
||||
NOT NULL,
|
||||
|
||||
NOTA_MEDIA
|
||||
NUMERIC(3,1),
|
||||
|
||||
DESCRICAO
|
||||
VARCHAR(500),
|
||||
|
||||
CONSTRAINT PK_MM_JOGOS
|
||||
PRIMARY KEY (CODIGO),
|
||||
|
||||
CONSTRAINT CK_MM_JOGOS_TITULO
|
||||
CHECK (LENGTH(TITULO) BETWEEN 3 AND 100),
|
||||
|
||||
CONSTRAINT CK_MM_JOGOS_ANO
|
||||
CHECK (
|
||||
ANO_LANCAMENTO BETWEEN 1970
|
||||
AND EXTRACT(YEAR FROM CURRENT_DATE)
|
||||
),
|
||||
|
||||
CONSTRAINT CK_MM_JOGOS_NOTA_MEDIA
|
||||
CHECK (
|
||||
NOTA_MEDIA IS NULL
|
||||
OR NOTA_MEDIA BETWEEN 0 AND 10
|
||||
)
|
||||
|
||||
);
|
||||
</sql>
|
||||
|
||||
</changeSet>
|
||||
|
||||
<changeSet author="matheus.medeiros" id="matheus.medeiros-3">
|
||||
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
||||
<not>
|
||||
<sequenceExists sequenceName="TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ" />
|
||||
</not>
|
||||
</preConditions>
|
||||
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
||||
|
||||
<sql>
|
||||
CREATE SEQUENCE TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ
|
||||
START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE;
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
CACHE 1
|
||||
NO CYCLE;
|
||||
</sql>
|
||||
|
||||
</changeSet>
|
||||
|
||||
|
||||
|
||||
<changeSet author="matheus.medeiros" id="matheus.medeiros-4">
|
||||
|
||||
<sql>
|
||||
CREATE TABLE TB_MATHEUS_MEDEIROS_AVALIACOES (
|
||||
|
||||
CODIGO
|
||||
NUMERIC(10)
|
||||
DEFAULT NEXTVAL('TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ')
|
||||
NOT NULL,
|
||||
|
||||
NOME
|
||||
VARCHAR(100)
|
||||
NOT NULL,
|
||||
|
||||
EMAIL
|
||||
VARCHAR(150)
|
||||
NOT NULL,
|
||||
|
||||
COMENTARIO
|
||||
VARCHAR(300),
|
||||
|
||||
NOTA
|
||||
NUMERIC(3,1),
|
||||
|
||||
DATA_AVALIACAO
|
||||
TIMESTAMP
|
||||
DEFAULT CURRENT_TIMESTAMP
|
||||
NOT NULL,
|
||||
|
||||
ID_JOGO
|
||||
NUMERIC(10)
|
||||
NOT NULL,
|
||||
|
||||
CONSTRAINT PK_MM_AVALIACOES
|
||||
PRIMARY KEY (CODIGO),
|
||||
|
||||
CONSTRAINT UK_MM_AVAL_EMAIL_JOGO
|
||||
UNIQUE (EMAIL, ID_JOGO),
|
||||
|
||||
CONSTRAINT FK_MM_AVAL_JOGO
|
||||
FOREIGN KEY (ID_JOGO)
|
||||
REFERENCES TB_MATHEUS_MEDEIROS_JOGOS (CODIGO),
|
||||
|
||||
CONSTRAINT CK_MM_AVAL_NOTA
|
||||
CHECK (
|
||||
NOTA IS NULL
|
||||
OR NOTA BETWEEN 0 AND 10
|
||||
)
|
||||
|
||||
);
|
||||
</sql>
|
||||
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
Reference in New Issue
Block a user