Skip to content

Commit 3eee92c

Browse files
authored
Docker: Setup (#2)
- Add docker config and SQL schema; - Remove unnecessary fields from models.
1 parent 9dd3447 commit 3eee92c

6 files changed

Lines changed: 185 additions & 32 deletions

File tree

‎docker/docker-compose.yml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
version: "3.3"
2+
3+
services:
4+
postgres:
5+
container_name: postgres
6+
build:
7+
context: .
8+
dockerfile: postgres/Dockerfile
9+
environment:
10+
POSTGRES_USER: postgres
11+
POSTGRES_PASSWORD: postgres
12+
POSTGRES_DB: hawapi
13+
ports:
14+
- "5432:5432"

‎docker/postgres/Dockerfile‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM postgres:alpine
2+
3+
ADD /postgres/migration/schema.sql /docker-entrypoint-initdb.d
4+
ADD /postgres/migration/data.sql /docker-entrypoint-initdb.d
5+
6+
RUN chmod a+r /docker-entrypoint-initdb.d/*

‎docker/postgres/migration/data.sql‎

Whitespace-only changes.
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
--
2+
-- Extensions
3+
--
4+
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
5+
6+
--
7+
-- Functions
8+
--
9+
CREATE OR REPLACE FUNCTION update_updated_at_field()
10+
RETURNS TRIGGER AS $$
11+
BEGIN
12+
NEW.updated_at = now();
13+
RETURN NEW;
14+
END;
15+
$$ language 'plpgsql';
16+
17+
--
18+
-- Socials
19+
--
20+
CREATE TABLE IF NOT EXISTS socials (
21+
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
22+
name VARCHAR(50) NOT NULL,
23+
url TEXT NOT NULL,
24+
actor_id INTEGER NOT NULL,
25+
CONSTRAINT fk_actor
26+
FOREIGN KEY(actor_id)
27+
REFERENCES actors(id)
28+
ON UPDATE CASCADE
29+
ON DELETE CASCADE;
30+
)
31+
32+
--
33+
-- Characters
34+
-- Gender ref: ISO/IEC 5218
35+
--
36+
CREATE TABLE IF NOT EXISTS characters (
37+
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
38+
uuid UUID UNIQUE NOT NULL DEFAULT uuid_generate_v4(),
39+
href VARCHAR(100) NOT NULL,
40+
first_name VARCHAR(50) NOT NULL,
41+
last_name VARCHAR(50) NOT NULL,
42+
nicknames VARCHAR ARRAY,
43+
birth_date TIMESTAMP,
44+
death_date TIMESTAMP,
45+
gender SMALLINT NOT NULL DEFAULT 0;
46+
thumbnail TEXT,
47+
actor VARCHAR(100) NOT NULL,
48+
images VARCHAR ARRAY,
49+
sources VARCHAR ARRAY,
50+
created_at TIMESTAMP NOT NULL DEFAULT now(),
51+
updated_at TIMESTAMP NOT NULL DEFAULT now()
52+
);
53+
54+
CREATE TRIGGER handle_updated_at_field BEFORE
55+
UPDATE ON characters
56+
FOR EACH ROW
57+
EXECUTE PROCEDURE update_updated_at_field();
58+
59+
--
60+
-- Actors
61+
--
62+
CREATE TABLE IF NOT EXISTS actors (
63+
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
64+
uuid UUID UNIQUE NOT NULL DEFAULT uuid_generate_v4(),
65+
href VARCHAR(100) NOT NULL,
66+
first_name VARCHAR(50) NOT NULL,
67+
last_name VARCHAR(50) NOT NULL,
68+
nicknames VARCHAR ARRAY,
69+
birth_date TIMESTAMP,
70+
death_date TIMESTAMP,
71+
gender SMALLINT NOT NULL DEFAULT 0;
72+
nationality VARCHAR(50),
73+
episodes VARCHAR ARRAY,
74+
seasons VARCHAR ARRAY,
75+
awards VARCHAR ARRAY,
76+
socials_id INTEGER FOREIGN KEY,
77+
character VARCHAR(255) NOT NULL,
78+
thumbnail TEXT,
79+
images VARCHAR ARRAY,
80+
sources VARCHAR ARRAY,
81+
created_at TIMESTAMP NOT NULL DEFAULT now(),
82+
updated_at TIMESTAMP NOT NULL DEFAULT now()
83+
);
84+
85+
CREATE TRIGGER handle_updated_at_field BEFORE
86+
UPDATE ON actors
87+
FOR EACH ROW
88+
EXECUTE PROCEDURE update_updated_at_field();
89+
90+
--
91+
-- Episodes
92+
--
93+
CREATE TABLE IF NOT EXISTS episodes (
94+
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
95+
uuid UUID UNIQUE NOT NULL DEFAULT uuid_generate_v4(),
96+
href VARCHAR(100) NOT NULL,
97+
title VARCHAR(255) NOT NULL,
98+
description TEXT NOT NULL,
99+
duration INTEGER NOT NULL,
100+
episode_num SMALLINT NOT NULL,
101+
next_episode VARCHAR(255),
102+
prev_episode VARCHAR(255);
103+
season VARCHAR(255) NOT NULL,
104+
trailers VARCHAR ARRAY,
105+
thumbnail TEXT,
106+
images VARCHAR ARRAY,
107+
sources VARCHAR ARRAY,
108+
created_at TIMESTAMP NOT NULL DEFAULT now(),
109+
updated_at TIMESTAMP NOT NULL DEFAULT now()
110+
);
111+
112+
CREATE TRIGGER handle_updated_at_field BEFORE
113+
UPDATE ON episodes
114+
FOR EACH ROW
115+
EXECUTE PROCEDURE update_updated_at_field();
116+
117+
--
118+
-- Seasons
119+
--
120+
CREATE TABLE IF NOT EXISTS seasons (
121+
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
122+
uuid UUID UNIQUE NOT NULL DEFAULT uuid_generate_v4(),
123+
href VARCHAR(100) NOT NULL,
124+
title VARCHAR(255) NOT NULL,
125+
description TEXT NOT NULL,
126+
duration_total INTEGER NOT NULL,
127+
tags VARCHAR ARRAY,
128+
season_num SMALLINT NOT NULL,
129+
release_date TIMESTAMP NOT NULL,
130+
next_season VARCHAR(255),
131+
prev_season VARCHAR(255),
132+
episodes VARCHAR ARRAY,
133+
trailers VARCHAR ARRAY,
134+
thumbnail TEXT,
135+
images VARCHAR ARRAY,
136+
sources VARCHAR ARRAY,
137+
created_at TIMESTAMP NOT NULL DEFAULT now(),
138+
updated_at TIMESTAMP NOT NULL DEFAULT now()
139+
);
140+
141+
CREATE TRIGGER handle_updated_at_field BEFORE
142+
UPDATE ON seasons
143+
FOR EACH ROW
144+
EXECUTE PROCEDURE update_updated_at_field();
145+
146+
--
147+
-- Places
148+
--
149+
CREATE TABLE IF NOT EXISTS places (
150+
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
151+
uuid UUID UNIQUE NOT NULL DEFAULT uuid_generate_v4(),
152+
href VARCHAR(100) NOT NULL,
153+
name VARCHAR(255) NOT NULL,
154+
description TEXT NOT NULL,
155+
thumbnail TEXT,
156+
images VARCHAR ARRAY,
157+
sources VARCHAR ARRAY,
158+
created_at TIMESTAMP NOT NULL DEFAULT now(),
159+
updated_at TIMESTAMP NOT NULL DEFAULT now()
160+
);
161+
162+
CREATE TRIGGER handle_updated_at_field BEFORE
163+
UPDATE ON places
164+
FOR EACH ROW
165+
EXECUTE PROCEDURE update_updated_at_field();

‎src/main/java/com/lucasjosino/hawapi/models/ActorModel.java‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -123,16 +123,6 @@ public void setSeasons(String[] seasons) {
123123
this.seasons = seasons;
124124
}
125125

126-
@Override
127-
public String[] getAwards() {
128-
return awards;
129-
}
130-
131-
@Override
132-
public void setAwards(String[] awards) {
133-
this.awards = awards;
134-
}
135-
136126
public String getCharacter() {
137127
return character;
138128
}

‎src/main/java/com/lucasjosino/hawapi/models/base/BaseModel.java‎

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,9 @@ abstract public class BaseModel {
1717
@Column
1818
private String href;
1919

20-
@Column
21-
private String[] awards;
22-
2320
@Column
2421
private String[] sources;
2522

26-
@Column
27-
private String[] extras;
28-
2923
@Column(name = "created_at")
3024
private String createdAt;
3125

@@ -56,14 +50,6 @@ public void setHref(String href) {
5650
this.href = href;
5751
}
5852

59-
public String[] getAwards() {
60-
return awards;
61-
}
62-
63-
public void setAwards(String[] awards) {
64-
this.awards = awards;
65-
}
66-
6753
public String[] getSources() {
6854
return sources;
6955
}
@@ -72,14 +58,6 @@ public void setSources(String[] sources) {
7258
this.sources = sources;
7359
}
7460

75-
public String[] getExtras() {
76-
return extras;
77-
}
78-
79-
public void setExtras(String[] extras) {
80-
this.extras = extras;
81-
}
82-
8361
public String getCreatedAt() {
8462
return createdAt;
8563
}

0 commit comments

Comments
 (0)