diff --git a/panels/cadastro_jogos-desktop.xml b/panels/cadastro_jogos-desktop.xml
index cc704dc..56c96e9 100644
--- a/panels/cadastro_jogos-desktop.xml
+++ b/panels/cadastro_jogos-desktop.xml
@@ -1,10 +1,14 @@
+
+
diff --git a/patches/postgresql/matheus_medeiros_jogos.xml b/patches/postgresql/matheus_medeiros_jogos.xml
index df03dfa..3da3b98 100644
--- a/patches/postgresql/matheus_medeiros_jogos.xml
+++ b/patches/postgresql/matheus_medeiros_jogos.xml
@@ -1,79 +1,169 @@
-
+
-
-
-
-
-
-
- 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)
-);
-
-
+
-
-
-
-
-
-
-
- CREATE SEQUENCE TB_MATHEUS_MEDEIROS_JOGOS_SEQ
- START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE;
-
-
+
+ DROP TABLE IF EXISTS TB_MATHEUS_MEDEIROS_AVALIACOES;
+ DROP TABLE IF EXISTS TB_MATHEUS_MEDEIROS_JOGOS;
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+ DROP SEQUENCE IF EXISTS TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ;
+ DROP SEQUENCE IF EXISTS TB_MATHEUS_MEDEIROS_JOGOS_SEQ;
+
+
+
+
+
+
+
+
+ CREATE SEQUENCE TB_MATHEUS_MEDEIROS_JOGOS_SEQ
+ START WITH 1
+ INCREMENT BY 1
+ CACHE 1
+ NO CYCLE;
+
+
+
+
+
+
+
+
+ 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
+ )
+
+ );
+
+
+
+
+
+
+
+ CREATE SEQUENCE TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ
+ START WITH 1
+ INCREMENT BY 1
+ CACHE 1
+ NO CYCLE;
+
+
+
+
+
+
+
+
+
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)
-);
-
-
-
-
-
-
-
-
- CREATE SEQUENCE TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ
- START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE;
-
-
+ 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
+ )
+
+ );
+
+
+
\ No newline at end of file