@ -0,0 +1,414 @@ | |||||
-- Database: chessleague | |||||
-- DROP DATABASE chessleague; | |||||
-- CREATE DATABASE chessleague | |||||
-- WITH | |||||
-- OWNER = postgres | |||||
-- ENCODING = 'UTF8' | |||||
-- LC_COLLATE = 'German_Germany.1252' | |||||
-- LC_CTYPE = 'German_Germany.1252' | |||||
-- TABLESPACE = pg_default | |||||
-- CONNECTION LIMIT = -1; | |||||
DROP TABLE IF EXISTS "player" CASCADE; | |||||
DROP TABLE IF EXISTS "player_info" CASCADE; | |||||
DROP TABLE IF EXISTS "game" CASCADE; | |||||
DROP TABLE IF EXISTS "game_info" CASCADE; | |||||
DROP TABLE IF EXISTS "match" CASCADE; | |||||
DROP TABLE IF EXISTS "matchday" CASCADE; | |||||
DROP TABLE IF EXISTS "season" CASCADE; | |||||
CREATE TABLE "player" ( | |||||
"id" SERIAL PRIMARY KEY, | |||||
"name" varchar NOT NULL, | |||||
"nickname" varchar NOT NULL, | |||||
"info" int UNIQUE | |||||
); | |||||
CREATE TABLE "player_info" ( | |||||
"id" SERIAL PRIMARY KEY, | |||||
"url" varchar | |||||
); | |||||
CREATE TABLE "game" ( | |||||
"id" SERIAL PRIMARY KEY, | |||||
"match" int NOT NULL, | |||||
"player1_is_white" boolean NOT NULL, | |||||
"result" int NOT NULL, | |||||
"info" int UNIQUE | |||||
); | |||||
CREATE TABLE "game_info" ( | |||||
"id" SERIAL PRIMARY KEY, | |||||
"format" int, | |||||
"url" varchar | |||||
); | |||||
CREATE TABLE "match" ( | |||||
"id" SERIAL PRIMARY KEY, | |||||
"player1" int NOT NULL, | |||||
"player2" int NOT NULL, | |||||
"matchday" int NOT NULL | |||||
); | |||||
CREATE TABLE "matchday" ( | |||||
"id" SERIAL PRIMARY KEY, | |||||
"number" int NOT NULL, | |||||
"season" int NOT NULL | |||||
); | |||||
CREATE TABLE "season" ( | |||||
"id" SERIAL PRIMARY KEY, | |||||
"year_start" int NOT NULL, | |||||
"year_end" int NOT NULL | |||||
); | |||||
ALTER TABLE "player" ADD FOREIGN KEY ("info") REFERENCES "player_info" ("id"); | |||||
ALTER TABLE "game" ADD FOREIGN KEY ("match") REFERENCES "match" ("id"); | |||||
ALTER TABLE "game" ADD FOREIGN KEY ("info") REFERENCES "game_info" ("id"); | |||||
ALTER TABLE "match" ADD FOREIGN KEY ("player1") REFERENCES "player" ("id"); | |||||
ALTER TABLE "match" ADD FOREIGN KEY ("player2") REFERENCES "player" ("id"); | |||||
ALTER TABLE "match" ADD FOREIGN KEY ("matchday") REFERENCES "matchday" ("id"); | |||||
ALTER TABLE "matchday" ADD FOREIGN KEY ("season") REFERENCES "season" ("id"); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/aprilem262'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Sophia', 'aprilem262', (SELECT id from player_info WHERE url='https://www.chess.com/member/aprilem262') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/friedox'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Friedi', 'friedox', (SELECT id from player_info WHERE url='https://www.chess.com/member/friedox') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/internity'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Albert', 'internity', (SELECT id from player_info WHERE url='https://www.chess.com/member/internity') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/kevske'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Kevin', 'kevske', (SELECT id from player_info WHERE url='https://www.chess.com/member/kevske') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/kochi291'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Marcel', 'Kochi291', (SELECT id from player_info WHERE url='https://www.chess.com/member/kochi291') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/ladyanne26'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Anne', 'LadyAnne26', (SELECT id from player_info WHERE url='https://www.chess.com/member/ladyanne26') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/lakes0'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Florian', 'Lakes0', (SELECT id from player_info WHERE url='https://www.chess.com/member/lakes0') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/maddingladi'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Maddin', 'maddingladi', (SELECT id from player_info WHERE url='https://www.chess.com/member/maddingladi') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/magnus_brother'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Tariq', 'Magnus_brother', (SELECT id from player_info WHERE url='https://www.chess.com/member/magnus_brother') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/mama-lolo'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Malte', 'Mama-Lolo', (SELECT id from player_info WHERE url='https://www.chess.com/member/mama-lolo') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/marcriedlsperger'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Marc', 'marcriedlsperger', (SELECT id from player_info WHERE url='https://www.chess.com/member/marcriedlsperger') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/mistmade03'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Florian', 'Mistmade03', (SELECT id from player_info WHERE url='https://www.chess.com/member/mistmade03') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/moryzzle'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Moritz', 'Moryzzle', (SELECT id from player_info WHERE url='https://www.chess.com/member/moryzzle') ); | |||||
INSERT INTO "player_info" (url) VALUES ('https://www.chess.com/member/pandroit'); | |||||
INSERT INTO "player" (name, nickname, info) VALUES ('Peter', 'pandroit', (SELECT id from player_info WHERE url='https://www.chess.com/member/pandroit') ); | |||||
INSERT INTO "season" (year_start, year_end) VALUES (2020, 2020); | |||||
INSERT INTO "matchday" (number, season) VALUES (1, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 1, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 8, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 4, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 3, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 6, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 9, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 7, 1); | |||||
INSERT INTO "matchday" (number, season) VALUES (2, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 11, 2); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 12, 2); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 8, 2); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 4, 2); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 3, 2); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 6, 2); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 9, 2); | |||||
INSERT INTO "matchday" (number, season) VALUES (3, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 1, 3); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 11, 3); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 12, 3); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 8, 3); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 4, 3); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 3, 3); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 6, 3); | |||||
INSERT INTO "matchday" (number, season) VALUES (4, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 5, 4); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 10, 4); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 11, 4); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 12, 4); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 8, 4); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 4, 4); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 3, 4); | |||||
INSERT INTO "matchday" (number, season) VALUES (5, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 1, 5); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 5, 5); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 10, 5); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 11, 5); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 12, 5); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 8, 5); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 4, 5); | |||||
INSERT INTO "matchday" (number, season) VALUES (6, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 2, 6); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 13, 6); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 5, 6); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 10, 6); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 11, 6); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 12, 6); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 8, 6); | |||||
INSERT INTO "matchday" (number, season) VALUES (7, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 1, 7); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 2, 7); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 13, 7); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 5, 7); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 10, 7); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 11, 7); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 12, 7); | |||||
INSERT INTO "matchday" (number, season) VALUES (8, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 7, 8); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 14, 8); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 2, 8); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 13, 8); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 5, 8); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 10, 8); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 11, 8); | |||||
INSERT INTO "matchday" (number, season) VALUES (9, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 1, 9); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 7, 9); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 14, 9); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 2, 9); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 13, 9); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 5, 9); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 10, 9); | |||||
INSERT INTO "matchday" (number, season) VALUES (10, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 6, 10); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 9, 10); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 7, 10); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 14, 10); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 2, 10); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 13, 10); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 5, 10); | |||||
INSERT INTO "matchday" (number, season) VALUES (11, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 1, 11); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 6, 11); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 9, 11); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 7, 11); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 14, 11); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 2, 11); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 13, 11); | |||||
INSERT INTO "matchday" (number, season) VALUES (12, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 4, 12); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 3, 12); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 6, 12); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 9, 12); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 7, 12); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 14, 12); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 2, 12); | |||||
INSERT INTO "matchday" (number, season) VALUES (13, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 1, 13); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 4, 13); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 3, 13); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 6, 13); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 9, 13); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 7, 13); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 14, 13); | |||||
INSERT INTO "matchday" (number, season) VALUES (14, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 12, 14); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 11, 14); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 10, 14); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 5, 14); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 13, 14); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 2, 14); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 14, 14); | |||||
INSERT INTO "matchday" (number, season) VALUES (15, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 1, 15); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 10, 15); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 5, 15); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 13, 15); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 2, 15); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 14, 15); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 7, 15); | |||||
INSERT INTO "matchday" (number, season) VALUES (16, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 10, 16); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 5, 16); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 13, 16); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 2, 16); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 14, 16); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 7, 16); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 9, 16); | |||||
INSERT INTO "matchday" (number, season) VALUES (17, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 1, 17); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 13, 17); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 2, 17); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 14, 17); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 7, 17); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 9, 17); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 6, 17); | |||||
INSERT INTO "matchday" (number, season) VALUES (18, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 13, 18); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 2, 18); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 14, 18); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 7, 18); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 9, 18); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 6, 18); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 3, 18); | |||||
INSERT INTO "matchday" (number, season) VALUES (19, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 1, 19); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 14, 19); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 7, 19); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 9, 19); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 6, 19); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 3, 19); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 8, 4, 19); | |||||
INSERT INTO "matchday" (number, season) VALUES (20, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 14, 20); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 7, 20); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 9, 20); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 6, 20); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 3, 20); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 4, 20); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (12, 8, 20); | |||||
INSERT INTO "matchday" (number, season) VALUES (21, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 1, 21); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 9, 21); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 6, 21); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 3, 21); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 4, 21); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 8, 21); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (11, 12, 21); | |||||
INSERT INTO "matchday" (number, season) VALUES (22, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 9, 22); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 6, 22); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 3, 22); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 4, 22); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 8, 22); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 12, 22); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (10, 11, 22); | |||||
INSERT INTO "matchday" (number, season) VALUES (23, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 1, 23); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 3, 23); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 4, 23); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 8, 23); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 12, 23); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 11, 23); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 5, 10, 23); | |||||
INSERT INTO "matchday" (number, season) VALUES (24, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 3, 24); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 4, 24); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 8, 24); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 12, 24); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 11, 24); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 10, 24); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (13, 5, 24); | |||||
INSERT INTO "matchday" (number, season) VALUES (25, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 1, 25); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 8, 25); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 12, 25); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 11, 25); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 10, 25); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 5, 25); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 2, 13, 25); | |||||
INSERT INTO "matchday" (number, season) VALUES (26, 1); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 1, 8, 26); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 4, 12, 26); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 3, 11, 26); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 6, 10, 26); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 9, 5, 26); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES ( 7, 13, 26); | |||||
INSERT INTO "match" ("player1", "player2", "matchday") VALUES (14, 2, 26); | |||||
INSERT INTO "game_info" (format, url) VALUES (10, 'https://www.chess.com/live/game/8722014513'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=2 AND player2=9 AND matchday=1), TRUE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8722014513')); | |||||
INSERT INTO "game_info" (format, url) VALUES (10, 'https://www.chess.com/live/game/8723231941'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=2 AND player2=9 AND matchday=1), FALSE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8723231941')); | |||||
INSERT INTO "game_info" (format, url) VALUES (5, 'https://www.chess.com/live/game/8724907847'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=2 AND player2=9 AND matchday=1), TRUE, -1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8724907847')); | |||||
INSERT INTO "game_info" (format, url) VALUES (5, 'https://www.chess.com/live/game/8725036665'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=2 AND player2=9 AND matchday=1), FALSE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8725036665')); | |||||
INSERT INTO "game_info" (format, url) VALUES (3, 'https://www.chess.com/live/game/8725614379'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=2 AND player2=9 AND matchday=1), TRUE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8725614379')); | |||||
INSERT INTO "game_info" (format, url) VALUES (3, 'https://www.chess.com/live/game/8726184583'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=2 AND player2=9 AND matchday=1), FALSE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8726184583')); | |||||
INSERT INTO "game_info" (format, url) VALUES (10, 'https://www.chess.com/live/game/8616485043'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=14 AND player2=7 AND matchday=1), TRUE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8616485043')); | |||||
INSERT INTO "game_info" (format, url) VALUES (10, 'https://www.chess.com/live/game/8618149677'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=14 AND player2=7 AND matchday=1), FALSE, -1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8618149677')); | |||||
INSERT INTO "game_info" (format, url) VALUES (5, 'https://www.chess.com/live/game/8702757001'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=14 AND player2=7 AND matchday=1), FALSE, -1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8702757001')); | |||||
INSERT INTO "game_info" (format, url) VALUES (5, 'https://www.chess.com/live/game/8705204521'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=14 AND player2=7 AND matchday=1), TRUE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8705204521')); | |||||
INSERT INTO "game_info" (format, url) VALUES (3, 'https://www.chess.com/live/game/8705796221'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=14 AND player2=7 AND matchday=1), FALSE, -1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8705796221')); | |||||
INSERT INTO "game_info" (format, url) VALUES (3, 'https://www.chess.com/live/game/8706438057'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=14 AND player2=7 AND matchday=1), TRUE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8706438057')); | |||||
INSERT INTO "game_info" (format, url) VALUES (10, 'https://www.chess.com/live/game/8617630129'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=10 AND player2=4 AND matchday=1), TRUE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8617630129')); | |||||
INSERT INTO "game_info" (format, url) VALUES (10, 'https://www.chess.com/live/game/8618225533'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=10 AND player2=4 AND matchday=1), FALSE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8618225533')); | |||||
INSERT INTO "game_info" (format, url) VALUES (5, 'https://www.chess.com/live/game/8619306585'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=10 AND player2=4 AND matchday=1), TRUE, -1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8619306585')); | |||||
INSERT INTO "game_info" (format, url) VALUES (5, 'https://www.chess.com/live/game/8619471075'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=10 AND player2=4 AND matchday=1), FALSE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8619471075')); | |||||
INSERT INTO "game_info" (format, url) VALUES (3, 'https://www.chess.com/live/game/8620078695'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=10 AND player2=4 AND matchday=1), TRUE, -1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8620078695')); | |||||
INSERT INTO "game_info" (format, url) VALUES (3, 'https://www.chess.com/live/game/8620568591'); | |||||
INSERT INTO "game" (match, player1_is_white, result, info) VALUES ((SELECT id from match WHERE player1=10 AND player2=4 AND matchday=1), FALSE, 1, (SELECT id from game_info WHERE url='https://www.chess.com/live/game/8620568591')); |
@ -0,0 +1,40 @@ | |||||
.about-view { | |||||
display: block; | |||||
} | |||||
.column_header { | |||||
font-weight: bold; | |||||
font-size: large; | |||||
} | |||||
.big_header { | |||||
font-weight: bolder; | |||||
font-size: x-large; | |||||
} | |||||
.matchday_grid { | |||||
--_lumo-grid-border-width: 0; | |||||
} | |||||
/*.inner_matchday_layout {*/ | |||||
/* background-color: white;*/ | |||||
/*}*/ | |||||
/*.inner_matchday_layout > th {*/ | |||||
/* background-color: white;*/ | |||||
/*}*/ | |||||
/*:host {*/ | |||||
/* background-color: white;*/ | |||||
/*}*/ | |||||
/*[part~="cell"].matchday_grid {*/ | |||||
/* background-color: white;*/ | |||||
/*}*/ | |||||
/*.matchday_grid .v-grid-cell {*/ | |||||
/*}*/ | |||||
/*.matchday_grid .v-grid-tablewrapper{*/ | |||||
/* border: none;*/ | |||||
/*}*/ |
@ -0,0 +1,64 @@ | |||||
package com.example.application.data.bean; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.Match; | |||||
import com.example.application.data.entity.Matchday; | |||||
import com.example.application.data.entity.Player; | |||||
import java.util.Collection; | |||||
public class MatchForMatchdayView { | |||||
private Match match; | |||||
private Player player1; | |||||
private Player player2; | |||||
private Integer score1; | |||||
private Integer score2; | |||||
public MatchForMatchdayView(Match match, Player player1, Player player2, Integer score1, Integer score2) { | |||||
this.match = match; | |||||
this.player1 = player1; | |||||
this.player2 = player2; | |||||
this.score1 = score1; | |||||
this.score2 = score2; | |||||
} | |||||
public Match getMatch() { | |||||
return match; | |||||
} | |||||
public void setMatch(Match match) { | |||||
this.match = match; | |||||
} | |||||
public Player getPlayer1() { | |||||
return player1; | |||||
} | |||||
public void setPlayer1(Player player1) { | |||||
this.player1 = player1; | |||||
} | |||||
public Player getPlayer2() { | |||||
return player2; | |||||
} | |||||
public void setPlayer2(Player player2) { | |||||
this.player2 = player2; | |||||
} | |||||
public Integer getScore1() { | |||||
return score1; | |||||
} | |||||
public void setScore1(Integer score1) { | |||||
this.score1 = score1; | |||||
} | |||||
public Integer getScore2() { | |||||
return score2; | |||||
} | |||||
public void setScore2(Integer score2) { | |||||
this.score2 = score2; | |||||
} | |||||
} |
@ -0,0 +1,77 @@ | |||||
package com.example.application.data.entity; | |||||
import javax.persistence.*; | |||||
import java.util.Objects; | |||||
@Entity | |||||
@Table(name = "game", schema = "public", catalog = "chessleague") | |||||
public class Game { | |||||
private Integer id; | |||||
private Boolean player1IsWhite; | |||||
private Integer result; | |||||
private Match match; | |||||
private GameInfo gameInfo; | |||||
@Id | |||||
@GeneratedValue(strategy = GenerationType.IDENTITY) | |||||
@Column(name = "id", nullable = false) | |||||
public Integer getId() { | |||||
return id; | |||||
} | |||||
public void setId(Integer id) { | |||||
this.id = id; | |||||
} | |||||
@Basic | |||||
@Column(name = "player1_is_white", nullable = false) | |||||
public Boolean getPlayer1IsWhite() { | |||||
return player1IsWhite; | |||||
} | |||||
public void setPlayer1IsWhite(Boolean player1IsWhite) { | |||||
this.player1IsWhite = player1IsWhite; | |||||
} | |||||
@Basic | |||||
@Column(name = "result", nullable = false) | |||||
public Integer getResult() { | |||||
return result; | |||||
} | |||||
public void setResult(Integer result) { | |||||
this.result = result; | |||||
} | |||||
@Override | |||||
public boolean equals(Object o) { | |||||
if (this == o) return true; | |||||
if (o == null || getClass() != o.getClass()) return false; | |||||
Game that = (Game) o; | |||||
return Objects.equals(id, that.id) && Objects.equals(player1IsWhite, that.player1IsWhite) && Objects.equals(result, that.result); | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Objects.hash(id, player1IsWhite, result); | |||||
} | |||||
@ManyToOne(cascade=CascadeType.ALL) | |||||
@JoinColumn(name = "match", referencedColumnName = "id", nullable = false) | |||||
public Match getMatch() { | |||||
return match; | |||||
} | |||||
public void setMatch(Match match) { | |||||
this.match = match; | |||||
} | |||||
@OneToOne | |||||
@JoinColumn(name = "info", referencedColumnName = "id") | |||||
public GameInfo getGameInfo() { | |||||
return gameInfo; | |||||
} | |||||
public void setGameInfo(GameInfo gameInfo) { | |||||
this.gameInfo = gameInfo; | |||||
} | |||||
} |
@ -0,0 +1,66 @@ | |||||
package com.example.application.data.entity; | |||||
import javax.persistence.*; | |||||
import java.util.Objects; | |||||
@Entity | |||||
@Table(name = "game_info", schema = "public", catalog = "chessleague") | |||||
public class GameInfo { | |||||
private Integer id; | |||||
private String url; | |||||
private Game game; | |||||
private Integer format; | |||||
@Id | |||||
@GeneratedValue(strategy = GenerationType.IDENTITY) | |||||
@Column(name = "id", nullable = false) | |||||
public Integer getId() { | |||||
return id; | |||||
} | |||||
public void setId(Integer id) { | |||||
this.id = id; | |||||
} | |||||
@Basic | |||||
@Column(name = "url", length = -1) | |||||
public String getUrl() { | |||||
return url; | |||||
} | |||||
public void setUrl(String url) { | |||||
this.url = url; | |||||
} | |||||
@Basic | |||||
@Column(name = "format", nullable = false) | |||||
public Integer getFormat() { | |||||
return format; | |||||
} | |||||
public void setFormat(Integer format) { | |||||
this.format = format; | |||||
} | |||||
@Override | |||||
public boolean equals(Object o) { | |||||
if (this == o) return true; | |||||
if (o == null || getClass() != o.getClass()) return false; | |||||
GameInfo that = (GameInfo) o; | |||||
return Objects.equals(id, that.id) && Objects.equals(url, that.url) && Objects.equals(format, that.format); | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Objects.hash(id, url, format); | |||||
} | |||||
@OneToOne(mappedBy = "gameInfo") | |||||
public Game getGame() { | |||||
return game; | |||||
} | |||||
public void setGame(Game game) { | |||||
this.game = game; | |||||
} | |||||
} |
@ -0,0 +1,78 @@ | |||||
package com.example.application.data.entity; | |||||
import javax.persistence.*; | |||||
import java.util.Collection; | |||||
import java.util.Objects; | |||||
@Entity | |||||
@Table(name = "match", schema = "public", catalog = "chessleague") | |||||
public class Match { | |||||
private Integer id; | |||||
private Collection<Game> games; | |||||
private Player player1; | |||||
private Player player2; | |||||
private Matchday matchday; | |||||
@Id | |||||
@GeneratedValue(strategy = GenerationType.IDENTITY) | |||||
@Column(name = "id", nullable = false) | |||||
public Integer getId() { | |||||
return id; | |||||
} | |||||
public void setId(Integer id) { | |||||
this.id = id; | |||||
} | |||||
@Override | |||||
public boolean equals(Object o) { | |||||
if (this == o) return true; | |||||
if (o == null || getClass() != o.getClass()) return false; | |||||
Match that = (Match) o; | |||||
return Objects.equals(id, that.id); | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Objects.hash(id); | |||||
} | |||||
@OneToMany(mappedBy = "match", fetch = FetchType.EAGER) | |||||
public Collection<Game> getGames() { | |||||
return games; | |||||
} | |||||
public void setGames(Collection<Game> games) { | |||||
this.games = games; | |||||
} | |||||
@ManyToOne(cascade=CascadeType.ALL) | |||||
@JoinColumn(name = "player1", referencedColumnName = "id", nullable = false) | |||||
public Player getPlayer1() { | |||||
return player1; | |||||
} | |||||
public void setPlayer1(Player player1) { | |||||
this.player1 = player1; | |||||
} | |||||
@ManyToOne(cascade=CascadeType.ALL) | |||||
@JoinColumn(name = "player2", referencedColumnName = "id", nullable = false) | |||||
public Player getPlayer2() { | |||||
return player2; | |||||
} | |||||
public void setPlayer2(Player player2) { | |||||
this.player2 = player2; | |||||
} | |||||
@ManyToOne(cascade=CascadeType.ALL) | |||||
@JoinColumn(name = "matchday", referencedColumnName = "id", nullable = false) | |||||
public Matchday getMatchday() { | |||||
return matchday; | |||||
} | |||||
public void setMatchday(Matchday matchday) { | |||||
this.matchday = matchday; | |||||
} | |||||
} |
@ -0,0 +1,72 @@ | |||||
package com.example.application.data.entity; | |||||
import javax.persistence.*; | |||||
import java.util.Collection; | |||||
import java.util.Objects; | |||||
@Entity | |||||
@Table(name = "matchday", schema = "public", catalog = "chessleague") | |||||
public class Matchday { | |||||
private Integer id; | |||||
private Integer number; | |||||
private Collection<Match> matches; | |||||
private Season season; | |||||
@Id | |||||
@GeneratedValue(strategy = GenerationType.IDENTITY) | |||||
@Column(name = "id", nullable = false) | |||||
public Integer getId() { | |||||
return id; | |||||
} | |||||
public void setId(Integer id) { | |||||
this.id = id; | |||||
} | |||||
@Basic | |||||
@Column(name = "number", nullable = false) | |||||
public Integer getNumber() { | |||||
return number; | |||||
} | |||||
public void setNumber(Integer number) { | |||||
this.number = number; | |||||
} | |||||
@Override | |||||
public boolean equals(Object o) { | |||||
if (this == o) return true; | |||||
if (o == null || getClass() != o.getClass()) return false; | |||||
Matchday that = (Matchday) o; | |||||
return Objects.equals(id, that.id) && Objects.equals(number, that.number); | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Objects.hash(id, number); | |||||
} | |||||
@OneToMany(mappedBy = "matchday") | |||||
public Collection<Match> getMatches() { | |||||
return matches; | |||||
} | |||||
public void setMatches(Collection<Match> matches) { | |||||
this.matches = matches; | |||||
} | |||||
@ManyToOne(cascade=CascadeType.ALL) | |||||
@JoinColumn(name = "season", referencedColumnName = "id", nullable = false) | |||||
public Season getSeason() { | |||||
return season; | |||||
} | |||||
public void setSeason(Season season) { | |||||
this.season = season; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
return number.toString(); | |||||
} | |||||
} |
@ -0,0 +1,93 @@ | |||||
package com.example.application.data.entity; | |||||
import javax.persistence.*; | |||||
import java.util.Collection; | |||||
import java.util.Objects; | |||||
@Entity | |||||
@Table(name = "player", schema = "public", catalog = "chessleague") | |||||
public class Player { | |||||
private Integer id; | |||||
private String name; | |||||
private String nickname; | |||||
private Collection<Match> matchesAsPlayer1; | |||||
private Collection<Match> matchesAsPlayer2; | |||||
private PlayerInfo playerInfo; | |||||
@Id | |||||
@GeneratedValue(strategy = GenerationType.IDENTITY) | |||||
@Column(name = "id", nullable = false) | |||||
public Integer getId() { | |||||
return id; | |||||
} | |||||
public void setId(Integer id) { | |||||
this.id = id; | |||||
} | |||||
@Basic | |||||
@Column(name = "name", nullable = false, length = -1) | |||||
public String getName() { | |||||
return name; | |||||
} | |||||
public void setName(String name) { | |||||
this.name = name; | |||||
} | |||||
@Basic | |||||
@Column(name = "nickname", nullable = false, length = -1) | |||||
public String getNickname() { | |||||
return nickname; | |||||
} | |||||
public void setNickname(String nickname) { | |||||
this.nickname = nickname; | |||||
} | |||||
@Override | |||||
public boolean equals(Object o) { | |||||
if (this == o) return true; | |||||
if (o == null || getClass() != o.getClass()) return false; | |||||
Player that = (Player) o; | |||||
return Objects.equals(id, that.id) && Objects.equals(name, that.name) && Objects.equals(nickname, that.nickname); | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Objects.hash(id, name, nickname); | |||||
} | |||||
@OneToMany(mappedBy = "player1") | |||||
public Collection<Match> getMatchesAsPlayer1() { | |||||
return matchesAsPlayer1; | |||||
} | |||||
public void setMatchesAsPlayer1(Collection<Match> matchesAsPlayer1) { | |||||
this.matchesAsPlayer1 = matchesAsPlayer1; | |||||
} | |||||
@OneToMany(mappedBy = "player2") | |||||
public Collection<Match> getMatchesAsPlayer2() { | |||||
return matchesAsPlayer2; | |||||
} | |||||
public void setMatchesAsPlayer2(Collection<Match> matchesAsPlayer2) { | |||||
this.matchesAsPlayer2 = matchesAsPlayer2; | |||||
} | |||||
@OneToOne | |||||
@JoinColumn(name = "info", referencedColumnName = "id") | |||||
public PlayerInfo getPlayerInfo() { | |||||
return playerInfo; | |||||
} | |||||
public void setPlayerInfo(PlayerInfo playerInfo) { | |||||
this.playerInfo = playerInfo; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
return name + " (" + nickname + ")"; | |||||
} | |||||
} |
@ -0,0 +1,55 @@ | |||||
package com.example.application.data.entity; | |||||
import javax.persistence.*; | |||||
import java.util.Objects; | |||||
@Entity | |||||
@Table(name = "player_info", schema = "public", catalog = "chessleague") | |||||
public class PlayerInfo { | |||||
private Integer id; | |||||
private String url; | |||||
private Player player; | |||||
@Id | |||||
@GeneratedValue(strategy = GenerationType.IDENTITY) | |||||
@Column(name = "id", nullable = false) | |||||
public Integer getId() { | |||||
return id; | |||||
} | |||||
public void setId(Integer id) { | |||||
this.id = id; | |||||
} | |||||
@Basic | |||||
@Column(name = "url", length = -1) | |||||
public String getUrl() { | |||||
return url; | |||||
} | |||||
public void setUrl(String url) { | |||||
this.url = url; | |||||
} | |||||
@Override | |||||
public boolean equals(Object o) { | |||||
if (this == o) return true; | |||||
if (o == null || getClass() != o.getClass()) return false; | |||||
PlayerInfo that = (PlayerInfo) o; | |||||
return Objects.equals(id, that.id) && Objects.equals(url, that.url); | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Objects.hash(id, url); | |||||
} | |||||
@OneToOne(mappedBy = "playerInfo") | |||||
public Player getPlayer() { | |||||
return player; | |||||
} | |||||
public void setPlayer(Player player) { | |||||
this.player = player; | |||||
} | |||||
} |
@ -0,0 +1,76 @@ | |||||
package com.example.application.data.entity; | |||||
import javax.persistence.*; | |||||
import java.util.Collection; | |||||
import java.util.Objects; | |||||
@Entity | |||||
@Table(name = "season", schema = "public", catalog = "chessleague") | |||||
public class Season { | |||||
private Integer id; | |||||
private Integer yearStart; | |||||
private Integer yearEnd; | |||||
private Collection<Matchday> matchdays; | |||||
@Id | |||||
@GeneratedValue(strategy = GenerationType.IDENTITY) | |||||
@Column(name = "id", nullable = false) | |||||
public Integer getId() { | |||||
return id; | |||||
} | |||||
public void setId(Integer id) { | |||||
this.id = id; | |||||
} | |||||
@Basic | |||||
@Column(name = "year_start", nullable = false) | |||||
public Integer getYearStart() { | |||||
return yearStart; | |||||
} | |||||
public void setYearStart(Integer yearStart) { | |||||
this.yearStart = yearStart; | |||||
} | |||||
@Basic | |||||
@Column(name = "year_end", nullable = false) | |||||
public Integer getYearEnd() { | |||||
return yearEnd; | |||||
} | |||||
public void setYearEnd(Integer yearEnd) { | |||||
this.yearEnd = yearEnd; | |||||
} | |||||
@Override | |||||
public boolean equals(Object o) { | |||||
if (this == o) return true; | |||||
if (o == null || getClass() != o.getClass()) return false; | |||||
Season that = (Season) o; | |||||
return Objects.equals(id, that.id) && Objects.equals(yearStart, that.yearStart) && Objects.equals(yearEnd, that.yearEnd); | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Objects.hash(id, yearStart, yearEnd); | |||||
} | |||||
@OneToMany(mappedBy = "season") | |||||
public Collection<Matchday> getMatchdays() { | |||||
return matchdays; | |||||
} | |||||
public void setMatchdays(Collection<Matchday> matchdays) { | |||||
this.matchdays = matchdays; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
String s = yearStart.toString(); | |||||
if (!yearEnd.equals(yearStart)) { | |||||
s += "/" + yearEnd.toString(); | |||||
} | |||||
return s; | |||||
} | |||||
} |
@ -0,0 +1,8 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.GameInfo; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
public interface GameInfoRepository extends JpaRepository<GameInfo, Integer> { | |||||
} |
@ -0,0 +1,22 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.GameInfo; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import org.vaadin.artur.helpers.CrudService; | |||||
@Service | |||||
public class GameInfoService extends CrudService<GameInfo, Integer> { | |||||
private final GameInfoRepository repository; | |||||
public GameInfoService(@Autowired GameInfoRepository repository) { | |||||
this.repository = repository; | |||||
} | |||||
@Override | |||||
protected GameInfoRepository getRepository() { | |||||
return repository; | |||||
} | |||||
} |
@ -0,0 +1,7 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
public interface GameRepository extends JpaRepository<Game, Integer> { | |||||
} |
@ -0,0 +1,22 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import org.vaadin.artur.helpers.CrudService; | |||||
@Service | |||||
public class GameService extends CrudService<Game, Integer> { | |||||
private final GameRepository repository; | |||||
public GameService(@Autowired GameRepository repository) { | |||||
this.repository = repository; | |||||
} | |||||
@Override | |||||
protected GameRepository getRepository() { | |||||
return repository; | |||||
} | |||||
} |
@ -0,0 +1,8 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.Match; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
public interface MatchRepository extends JpaRepository<Match, Integer> { | |||||
} |
@ -0,0 +1,50 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.bean.MatchForMatchdayView; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.Match; | |||||
import com.example.application.data.entity.Matchday; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import org.vaadin.artur.helpers.CrudService; | |||||
import java.util.List; | |||||
import java.util.stream.Collectors; | |||||
@Service | |||||
public class MatchService extends CrudService<Match, Integer> { | |||||
private final MatchRepository repository; | |||||
public MatchService(@Autowired MatchRepository repository) { | |||||
this.repository = repository; | |||||
} | |||||
@Override | |||||
protected MatchRepository getRepository() { | |||||
return repository; | |||||
} | |||||
public List<MatchForMatchdayView> getMatchesForMatchdayView(Matchday matchday) { | |||||
return repository.findAll().stream() | |||||
.filter(match -> match.getMatchday().equals(matchday)) | |||||
.map(match -> new MatchForMatchdayView(match, match.getPlayer1(), match.getPlayer2(), getScore1(match), getScore2(match))) | |||||
.collect(Collectors.toList()); | |||||
} | |||||
private static Integer getScore1(Match match) { | |||||
int score = 0; | |||||
for (Game game : match.getGames()) { | |||||
score += ((game.getPlayer1IsWhite() ? game.getResult() : -game.getResult()) + 1) / 2; | |||||
} | |||||
return score; | |||||
} | |||||
private static Integer getScore2(Match match) { | |||||
int score = 0; | |||||
for (Game game : match.getGames()) { | |||||
score += ((game.getPlayer1IsWhite() ? -game.getResult() : game.getResult()) + 1) / 2; | |||||
} | |||||
return score; | |||||
} | |||||
} |
@ -0,0 +1,8 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.Matchday; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
public interface MatchdayRepository extends JpaRepository<Matchday, Integer> { | |||||
} |
@ -0,0 +1,31 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Matchday; | |||||
import com.example.application.data.entity.Season; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import org.vaadin.artur.helpers.CrudService; | |||||
import java.util.List; | |||||
import java.util.stream.Collectors; | |||||
@Service | |||||
public class MatchdayService extends CrudService<Matchday, Integer> { | |||||
private final MatchdayRepository repository; | |||||
public MatchdayService(@Autowired MatchdayRepository repository) { | |||||
this.repository = repository; | |||||
} | |||||
@Override | |||||
protected MatchdayRepository getRepository() { | |||||
return repository; | |||||
} | |||||
public List<Matchday> getMatchdaysForSeason(Season season) { | |||||
return repository.findAll().stream() | |||||
.filter(matchday -> matchday.getSeason().equals(season)) | |||||
.collect(Collectors.toList()); | |||||
} | |||||
} |
@ -0,0 +1,8 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.PlayerInfo; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
public interface PlayerInfoRepository extends JpaRepository<PlayerInfo, Integer> { | |||||
} |
@ -0,0 +1,22 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.PlayerInfo; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import org.vaadin.artur.helpers.CrudService; | |||||
@Service | |||||
public class PlayerInfoService extends CrudService<PlayerInfo, Integer> { | |||||
private final PlayerInfoRepository repository; | |||||
public PlayerInfoService(@Autowired PlayerInfoRepository repository) { | |||||
this.repository = repository; | |||||
} | |||||
@Override | |||||
protected PlayerInfoRepository getRepository() { | |||||
return repository; | |||||
} | |||||
} |
@ -0,0 +1,8 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.Player; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
public interface PlayerRepository extends JpaRepository<Player, Integer> { | |||||
} |
@ -0,0 +1,22 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Player; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import org.vaadin.artur.helpers.CrudService; | |||||
@Service | |||||
public class PlayerService extends CrudService<Player, Integer> { | |||||
private final PlayerRepository repository; | |||||
public PlayerService(@Autowired PlayerRepository repository) { | |||||
this.repository = repository; | |||||
} | |||||
@Override | |||||
protected PlayerRepository getRepository() { | |||||
return repository; | |||||
} | |||||
} |
@ -0,0 +1,8 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Game; | |||||
import com.example.application.data.entity.Season; | |||||
import org.springframework.data.jpa.repository.JpaRepository; | |||||
public interface SeasonRepository extends JpaRepository<Season, Integer> { | |||||
} |
@ -0,0 +1,34 @@ | |||||
package com.example.application.data.service; | |||||
import com.example.application.data.entity.Season; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import org.vaadin.artur.helpers.CrudService; | |||||
import java.util.Collection; | |||||
import java.util.Comparator; | |||||
import java.util.List; | |||||
import java.util.stream.Collectors; | |||||
@Service | |||||
public class SeasonService extends CrudService<Season, Integer> { | |||||
private final SeasonRepository repository; | |||||
public SeasonService(@Autowired SeasonRepository repository) { | |||||
this.repository = repository; | |||||
} | |||||
@Override | |||||
protected SeasonRepository getRepository() { | |||||
return repository; | |||||
} | |||||
public List<Season> getAllSeasonsSorted() { | |||||
return repository.findAll().stream() | |||||
.sorted(Comparator.comparingInt(Season::getYearEnd)) | |||||
.sorted(Comparator.comparingInt(Season::getYearStart)) | |||||
.collect(Collectors.toList()); | |||||
} | |||||
} |
@ -0,0 +1,282 @@ | |||||
package com.example.application.views.results; | |||||
import com.example.application.data.bean.MatchForMatchdayView; | |||||
import com.example.application.data.entity.Matchday; | |||||
import com.example.application.data.entity.Player; | |||||
import com.example.application.data.entity.Season; | |||||
import com.example.application.data.service.MatchService; | |||||
import com.example.application.data.service.MatchdayService; | |||||
import com.example.application.data.service.SeasonService; | |||||
import com.example.application.views.main.MainView; | |||||
import com.vaadin.flow.component.*; | |||||
import com.vaadin.flow.component.button.Button; | |||||
import com.vaadin.flow.component.dependency.CssImport; | |||||
import com.vaadin.flow.component.grid.ColumnTextAlign; | |||||
import com.vaadin.flow.component.grid.Grid; | |||||
import com.vaadin.flow.component.html.Div; | |||||
import com.vaadin.flow.component.html.Label; | |||||
import com.vaadin.flow.component.icon.Icon; | |||||
import com.vaadin.flow.component.icon.VaadinIcon; | |||||
import com.vaadin.flow.component.orderedlayout.FlexComponent; | |||||
import com.vaadin.flow.component.orderedlayout.HorizontalLayout; | |||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout; | |||||
import com.vaadin.flow.component.select.Select; | |||||
import com.vaadin.flow.function.ValueProvider; | |||||
import com.vaadin.flow.router.*; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.lang.NonNull; | |||||
import org.springframework.lang.Nullable; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
@CssImport("./views/results/results-view.css") | |||||
@Route(value = "results", layout = MainView.class) | |||||
@RouteAlias(value = "", layout = MainView.class) | |||||
@PageTitle("Results") | |||||
public class ResultsView extends Div implements HasUrlParameter<String> { | |||||
private final SeasonService seasonService; | |||||
private final MatchdayService matchdayService; | |||||
private final MatchService matchService; | |||||
private String seasonParam; | |||||
private String matchdayParam; | |||||
private final Label invalidUrlLabel = new Label(); | |||||
private final Label matchdayViewHeader = new Label(); | |||||
private final VerticalLayout outer = new VerticalLayout(); | |||||
private final HorizontalLayout selectionLayout = new HorizontalLayout(); | |||||
private final HorizontalLayout outerMatchdaylayout = new HorizontalLayout(); | |||||
private final VerticalLayout innerMatchdayLayout = new VerticalLayout(); | |||||
private final List<Season> seasonList = new ArrayList<>(); | |||||
private final Select<Season> seasonSelect = new Select<>(); | |||||
private final List<Matchday> matchdayList = new ArrayList<>(); | |||||
private final Select<Matchday> matchdaySelect = new Select<>(); | |||||
private final Button prevButton = new Button(new Icon(VaadinIcon.ARROW_LEFT)); | |||||
private final Button nextButton = new Button(new Icon(VaadinIcon.ARROW_RIGHT)); | |||||
private final Grid<MatchForMatchdayView> grid = new Grid<>(); | |||||
public ResultsView(@Autowired SeasonService seasonService, @Autowired MatchdayService matchdayService, @Autowired MatchService matchService) { | |||||
this.seasonService = seasonService; | |||||
this.matchdayService = matchdayService; | |||||
this.matchService = matchService; | |||||
addClassName("results-view"); | |||||
configureOuterLayout(); | |||||
configureSelectionLayout(); | |||||
configureMatchdayViewLayout(); | |||||
} | |||||
private void configureOuterLayout() { | |||||
add(outer); | |||||
outer.setAlignItems(FlexComponent.Alignment.CENTER); | |||||
} | |||||
private void configureSelectionLayout() { | |||||
// pretty looks | |||||
selectionLayout.setWidthFull(); | |||||
selectionLayout.setAlignItems(FlexComponent.Alignment.CENTER); | |||||
selectionLayout.setJustifyContentMode(FlexComponent.JustifyContentMode.END); | |||||
selectionLayout.add(new Label("Season:"), seasonSelect, new Label("Matchday:"), matchdaySelect); | |||||
seasonSelect.addValueChangeListener(seasonSelectValueChangeListener()); | |||||
matchdaySelect.addValueChangeListener(matchdaySelectValueChangeListener()); | |||||
// provide data | |||||
fillSeasonSelectWithData(); | |||||
} | |||||
private HasValue.ValueChangeListener<? super AbstractField.ComponentValueChangeEvent<Select<Matchday>, Matchday>> matchdaySelectValueChangeListener() { | |||||
return matchdayChangeEvent -> getUI().ifPresent(ui -> { | |||||
Season season = seasonSelect.getValue(); | |||||
Matchday matchday = matchdayChangeEvent.getValue(); | |||||
if (season != null && matchday != null) { | |||||
String seasonParam = season.toString(); | |||||
String matchdayParam = matchday.toString(); | |||||
navigate(ui, seasonParam, matchdayParam); | |||||
} | |||||
}); | |||||
} | |||||
private HasValue.ValueChangeListener<? super AbstractField.ComponentValueChangeEvent<Select<Season>, Season>> seasonSelectValueChangeListener() { | |||||
return seasonChangeEvent -> getUI().ifPresent(ui -> { | |||||
Season newSeason = seasonChangeEvent.getValue(); | |||||
if (newSeason != null) { | |||||
String seasonParam = newSeason.toString(); | |||||
String matchdayParam = null; | |||||
Matchday matchdayInNewSeason = null; | |||||
Matchday matchdayInOldSeason = matchdaySelect.getValue(); | |||||
if (matchdayInOldSeason != null) { | |||||
matchdayParam = matchdayInOldSeason.toString(); | |||||
matchdayInNewSeason = getMatchdayFromParam(matchdayParam, newSeason); | |||||
} | |||||
matchdayParam = matchdayInNewSeason == null ? "1" : matchdayParam; | |||||
navigate(ui, seasonParam, matchdayParam); | |||||
} | |||||
}); | |||||
} | |||||
private void fillSeasonSelectWithData() { | |||||
seasonList.clear(); | |||||
seasonList.addAll(seasonService.getAllSeasonsSorted()); | |||||
seasonSelect.setItems(seasonList); | |||||
} | |||||
private void fillMatchdaySelectWithData() { | |||||
matchdayList.clear(); | |||||
matchdayList.addAll(matchdayService.getMatchdaysForSeason(seasonSelect.getValue())); | |||||
matchdaySelect.setItems(matchdayList); | |||||
} | |||||
private void configureMatchdayViewLayout() { | |||||
outerMatchdaylayout.add(prevButton, innerMatchdayLayout, nextButton); | |||||
matchdayViewHeader.addClassName("big_header"); | |||||
innerMatchdayLayout.setPadding(false); | |||||
innerMatchdayLayout.add(matchdayViewHeader, grid); | |||||
innerMatchdayLayout.setAlignItems(FlexComponent.Alignment.CENTER); | |||||
innerMatchdayLayout.addClassName("inner_matchday_layout"); | |||||
Label headerPlayer1 = new Label("Player 1"); | |||||
headerPlayer1.addClassName("column_header"); | |||||
Label headerPlayer2 = new Label("Player 2"); | |||||
headerPlayer2.addClassName("column_header"); | |||||
Label headerResult = new Label("Result"); | |||||
headerResult.addClassName("column_header"); | |||||
grid.addColumn((ValueProvider<MatchForMatchdayView, Player>) MatchForMatchdayView::getPlayer1) | |||||
.setHeader(headerPlayer1) | |||||
.setTextAlign(ColumnTextAlign.CENTER) | |||||
.setWidth("13em"); | |||||
grid.addColumn((ValueProvider<MatchForMatchdayView, String>) match -> "vs.") | |||||
.setHeader("vs.") | |||||
.setTextAlign(ColumnTextAlign.CENTER) | |||||
.setWidth("3em"); | |||||
grid.addColumn((ValueProvider<MatchForMatchdayView, Player>) MatchForMatchdayView::getPlayer2) | |||||
.setHeader(headerPlayer2) | |||||
.setTextAlign(ColumnTextAlign.CENTER) | |||||
.setWidth("13em"); | |||||
grid.addColumn((ValueProvider<MatchForMatchdayView, String>) match -> { | |||||
String result = match.getScore1().toString() + " : " + match.getScore2().toString(); | |||||
return result.equals("0 : 0") ? "" : result; | |||||
}) | |||||
.setHeader(headerResult) | |||||
.setTextAlign(ColumnTextAlign.CENTER) | |||||
.setWidth("6em"); | |||||
grid.setWidth("36em"); | |||||
grid.setHeightByRows(true); | |||||
grid.addClassName("matchday_grid"); | |||||
} | |||||
private String getPrevMatchdayParam() { | |||||
return String.valueOf(Integer.parseInt(matchdayParam) - 1); | |||||
} | |||||
private String getNextMatchdayParam() { | |||||
return String.valueOf(Integer.parseInt(matchdayParam) + 1); | |||||
} | |||||
private boolean isMatchDayParamValid(@NonNull String matchdayParam) { | |||||
return matchdayList.stream().anyMatch(matchday -> matchdayParam.equals(matchday.toString())); | |||||
} | |||||
private ComponentEventListener<ClickEvent<Button>> getButtonClickListener(Button button, String matchdayParam) { | |||||
return buttonClickEvent -> getUI().ifPresent(ui -> navigate(ui, seasonParam, matchdayParam)); | |||||
} | |||||
private void navigate(UI ui, String seasonParam, String matchdayParam) { | |||||
ui.navigate(String.format("results/%s/%s/", seasonParam, matchdayParam)); | |||||
} | |||||
private void configureMatchdayView() { | |||||
matchdayViewHeader.setText(String.format("Matchday %s", matchdaySelect.getValue().toString())); | |||||
grid.setItems(matchService.getMatchesForMatchdayView(matchdaySelect.getValue())); | |||||
} | |||||
@Override | |||||
public void setParameter(BeforeEvent beforeEvent, @WildcardParameter String param) { | |||||
outer.removeAll(); | |||||
if (!param.matches("^[0-9]*/[0-9]*/?$")) { | |||||
invalidUrlLabel.setText("Invalid URL! Please provide params in the form season/matchday/"); | |||||
outer.add(invalidUrlLabel); | |||||
return; | |||||
} | |||||
String[] params = param.split("/"); | |||||
seasonParam = params[0]; | |||||
matchdayParam = params[1]; | |||||
Season season = getSeasonFromParam(seasonParam); | |||||
if (season == null) { | |||||
invalidUrlLabel.setText(String.format("Invalid URL! Season \"%s\" does not exist in the database!", seasonParam)); | |||||
outer.add(invalidUrlLabel); | |||||
return; | |||||
} | |||||
seasonSelect.setValue(season); | |||||
fillMatchdaySelectWithData(); | |||||
Matchday matchday = getMatchdayFromParam(matchdayParam); | |||||
if (matchday == null) { | |||||
invalidUrlLabel.setText(String.format("Invalid URL! Matchday \"%s\" in Season \"%s\" does not exist in the database!", matchdayParam, seasonParam)); | |||||
outer.add(invalidUrlLabel); | |||||
return; | |||||
} | |||||
matchdaySelect.setValue(matchday); | |||||
configureMatchdayView(); | |||||
outer.add(selectionLayout); | |||||
outer.add(outerMatchdaylayout); | |||||
configureButtons(); | |||||
} | |||||
private void configureButtons() { | |||||
prevButton.setEnabled(isMatchDayParamValid(getPrevMatchdayParam())); | |||||
prevButton.addClickListener(getButtonClickListener(prevButton, getPrevMatchdayParam())); | |||||
nextButton.setEnabled(isMatchDayParamValid(getNextMatchdayParam())); | |||||
nextButton.addClickListener(getButtonClickListener(nextButton, getNextMatchdayParam())); | |||||
} | |||||
@Nullable | |||||
private Season getSeasonFromParam(@NonNull String seasonParam) { | |||||
for (Season season : seasonList) { | |||||
if (seasonParam.equals(season.toString())) { | |||||
return season; | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
@Nullable | |||||
private Matchday getMatchdayFromParam(@NonNull String matchdayParam) { | |||||
return getMatchdayFromParam(matchdayParam, null); | |||||
} | |||||
@Nullable | |||||
private Matchday getMatchdayFromParam(@NonNull String matchdayParam, @Nullable Season season) { | |||||
List<Matchday> matchdayList = season == null ? this.matchdayList : matchdayService.getMatchdaysForSeason(season); | |||||
for (Matchday matchday : matchdayList) { | |||||
if (matchdayParam.equals(matchday.toString())) { | |||||
return matchday; | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
} |