From 33dcbba81cd422aea6dff8a3fdd8114274572881 Mon Sep 17 00:00:00 2001 From: PackOCigs Date: Mon, 29 Apr 2024 16:58:40 +0200 Subject: [PATCH 1/6] dodan user u schemu --- database/01_schema.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/database/01_schema.sql b/database/01_schema.sql index e69de29..dd2d30d 100644 --- a/database/01_schema.sql +++ b/database/01_schema.sql @@ -0,0 +1,10 @@ +CREATE TABLE IF NOT EXISTS user ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT, + username varchar(64) NOT NULL, + 'password' varchar(255) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, + deleted_at TIMESTAMP NULL, + PRIMARY KEY (id), + UNIQUE KEY uk_name (username,'password') +); From a5ac6c68d9f54998abd5c3c3a6f93afbe68489dd Mon Sep 17 00:00:00 2001 From: PackOCigs Date: Mon, 22 Apr 2024 19:10:51 +0200 Subject: [PATCH 2/6] =?UTF-8?q?Baza=20podataka,=20predlo=C5=BEak=20za=20ko?= =?UTF-8?q?risnika=20vol.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user_roles.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 user_roles.sql diff --git a/user_roles.sql b/user_roles.sql new file mode 100644 index 0000000..dd2d30d --- /dev/null +++ b/user_roles.sql @@ -0,0 +1,10 @@ +CREATE TABLE IF NOT EXISTS user ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT, + username varchar(64) NOT NULL, + 'password' varchar(255) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, + deleted_at TIMESTAMP NULL, + PRIMARY KEY (id), + UNIQUE KEY uk_name (username,'password') +); From 6ea987c8211dbd0b9d88b923cba7520967698a1c Mon Sep 17 00:00:00 2001 From: PackOCigs Date: Mon, 22 Apr 2024 19:13:57 +0200 Subject: [PATCH 3/6] Prvi commit. --- user_roles.sql => user.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename user_roles.sql => user.sql (100%) diff --git a/user_roles.sql b/user.sql similarity index 100% rename from user_roles.sql rename to user.sql From 51fa8bd3d6486746125786d93577faff1c0f257f Mon Sep 17 00:00:00 2001 From: PackOCigs Date: Mon, 29 Apr 2024 17:18:14 +0200 Subject: [PATCH 4/6] =?UTF-8?q?uklonjen=20vi=C5=A1ka=20user.sql=20fajl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test.txt | 7 ------- user.sql | 10 ---------- 2 files changed, 17 deletions(-) delete mode 100644 test.txt delete mode 100644 user.sql diff --git a/test.txt b/test.txt deleted file mode 100644 index aafab5c..0000000 --- a/test.txt +++ /dev/null @@ -1,7 +0,0 @@ -CREATE TABLE users ( - user_id INT AUTO_INCREMENT PRIMARY KEY, - username VARCHAR(50) NOT NULL, - email VARCHAR(100) NOT NULL, - age INT, - registration_date DATE -); \ No newline at end of file diff --git a/user.sql b/user.sql deleted file mode 100644 index dd2d30d..0000000 --- a/user.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE IF NOT EXISTS user ( - id INT UNSIGNED NOT NULL AUTO_INCREMENT, - username varchar(64) NOT NULL, - 'password' varchar(255) NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, - deleted_at TIMESTAMP NULL, - PRIMARY KEY (id), - UNIQUE KEY uk_name (username,'password') -); From cf848f67376abb101d2d1381ffeec16893154626 Mon Sep 17 00:00:00 2001 From: PackOCigs Date: Mon, 29 Apr 2024 19:03:52 +0200 Subject: [PATCH 5/6] dodan final db struct --- database/01_schema.sql | 99 +++++++++++++++++++++++++++++++++++++++++- game.sql | 13 ------ 2 files changed, 97 insertions(+), 15 deletions(-) delete mode 100644 game.sql diff --git a/database/01_schema.sql b/database/01_schema.sql index b341f80..2541550 100644 --- a/database/01_schema.sql +++ b/database/01_schema.sql @@ -1,7 +1,8 @@ +USE db; CREATE TABLE IF NOT EXISTS user ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, - username varchar(64) NOT NULL, - 'password' varchar(255) NOT NULL, + username VARCHAR(64) NOT NULL, + user_password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, deleted_at TIMESTAMP NULL, @@ -14,8 +15,102 @@ CREATE TABLE user_login ( user_id int unsigned NOT NULL, time_stamp timestamp NOT NULL, ip varchar(225) NOT NULL, +======= + UNIQUE KEY uk_name (username,user_password) +); + +CREATE TABLE IF NOT EXISTS user_login ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT, + user_id INT UNSIGNED NOT NULL, + ip VARCHAR(225) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, + deleted_at TIMESTAMP NULL, +>>>>>>> a86d025fffcc52c6edcf066e86316dc4e41e5930 PRIMARY KEY pk_id (id), UNIQUE KEY uk_user_id (user_id), FOREIGN KEY fk_user_id (user_id) REFERENCES user(id) ); +<<<<<<< HEAD +======= + +CREATE TABLE IF NOT EXISTS game_state ( + id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, + name VARCHAR(64) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, + deleted_at TIMESTAMP NULL, + PRIMARY KEY (id), + UNIQUE KEY gs_name (name) +); + +CREATE TABLE IF NOT EXISTS game ( + id INT AUTO_INCREMENT PRIMARY KEY, + user_1_id INT UNSIGNED NOT NULL, + user_2_id INT UNSIGNED NOT NULL, + user_1_game_state_id TINYINT UNSIGNED NULL, + user_2_game_state_id TINYINT UNSIGNED NULL, + n_game TINYINT(1) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, + deleted_at TIMESTAMP NULL, + + FOREIGN KEY(user_1_id) REFERENCES user(id), + FOREIGN KEY(user_2_id) REFERENCES user(id), + FOREIGN KEY(user_1_game_state_id) REFERENCES game_state(id), + FOREIGN KEY(user_2_game_state_id) REFERENCES game_state(id) +); + +CREATE TABLE IF NOT EXISTS game_grid ( + id TINYINT primary key AUTO_INCREMENT NOT NULL , + game_id INT NOT NULL , + cell_value VARCHAR(1) NULL, + cell_index TINYINT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP, + deleted_at TIMESTAMP NULL, + FOREIGN KEY (game_id) REFERENCES game(id), + UNIQUE KEY (game_id,cell_index) +); + +INSERT INTO game_state (name) VALUES +('Win'), +('Lose'), +('Draw'); + +INSERT INTO user (username, user_password) VALUES +('admin', 'admin'); + +INSERT INTO user (username, user_password) VALUES +('admin1', 'admin1'); + +INSERT INTO user_login (user_id, ip) +SELECT id, '127.0.0.1' FROM user WHERE username = 'admin'; + +INSERT INTO user_login (user_id, ip) +SELECT id, '127.0.0.1' FROM user WHERE username = 'admin1'; + +INSERT INTO game (user_1_id, user_2_id, user_1_game_state_id, user_2_game_state_id, n_game) +SELECT u1.id, u2.id, gs1.id, gs2.id, 3 +FROM user u1, user u2, +game_state gs1, game_state gs2 +WHERE u1.username = 'admin' AND u2.username = 'admin1' +and gs1.name = 'Draw' and gs2.name = 'Draw'; + +INSERT INTO game (user_1_id, user_2_id, user_1_game_state_id, user_2_game_state_id, n_game) +SELECT u1.id, u2.id, gs1.id, gs2.id, 3 +FROM user u1, user u2, +game_state gs1, game_state gs2 +WHERE u1.username = 'admin' AND u2.username = 'admin1' +and gs1.name = 'Win' and gs2.name = 'Lose'; + +INSERT INTO game (user_1_id, user_2_id, n_game) +SELECT u1.id, u2.id, 3 +FROM user u1, user u2 +WHERE u1.username = 'admin' AND u2.username = 'admin1'; + +INSERT INTO game_grid (game_id, cell_value, cell_index) +SELECT g.id, 'X', 1 FROM game g +WHERE g.user_1_id = (SELECT id FROM user WHERE username = 'admin'); +>>>>>>> a86d025fffcc52c6edcf066e86316dc4e41e5930 diff --git a/game.sql b/game.sql deleted file mode 100644 index 40e368a..0000000 --- a/game.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE game ( - "id" INT AUTO_INCREMENT PRIMARY KEY, - "player1Id" INT UNSIGNED NOT NULL, - "player2Id" INT UNSIGNED NOT NULL, - "player1State" int UNSIGNED NULL, - "player2State" int UNSIGNED NULL, - "n_game" tinyint(1) NOT NULL - - FOREIGN KEY("player1_id") REFERENCES "user"("id") - FOREIGN KEY("player2_id") REFERENCES "user"("id") - FOREIGN KEY("player1State") REFERENCES "game_state"("id") - FOREIGN KEY("player2State") REFERENCES "game_state"("id") -); \ No newline at end of file From bcf71800691693eb1dfbf997df1016f4308126c2 Mon Sep 17 00:00:00 2001 From: PackOCigs Date: Fri, 10 May 2024 17:55:19 +0200 Subject: [PATCH 6/6] modeli --- models/index.ts | 2 ++ models/user.ts | 53 +++++++++++++++++++++++++++++++++++++++++++++ models/userLogin.ts | 36 ++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 models/index.ts create mode 100644 models/user.ts create mode 100644 models/userLogin.ts diff --git a/models/index.ts b/models/index.ts new file mode 100644 index 0000000..25daabc --- /dev/null +++ b/models/index.ts @@ -0,0 +1,2 @@ +export * from './user'; +export * from './userLogin'; diff --git a/models/user.ts b/models/user.ts new file mode 100644 index 0000000..c5a3014 --- /dev/null +++ b/models/user.ts @@ -0,0 +1,53 @@ +import { + Model, + Table, + Column, + DataType, + Index, + Sequelize, + ForeignKey, +} from 'sequelize-typescript'; + +export interface userAttributes { + id?: number; + username: string; + pass: string; + createdAt?: Date; + updatedAt?: Date; + deletedAt?: Date; +} + +@Table({ tableName: 'user', timestamps: false }) +export class user + extends Model + implements userAttributes +{ + @Column({ primaryKey: true, autoIncrement: true, type: DataType.INTEGER }) + @Index({ name: 'PRIMARY', using: 'BTREE', order: 'ASC', unique: true }) + id?: number; + + @Column({ type: DataType.STRING(64) }) + @Index({ name: 'uk_name', using: 'BTREE', order: 'ASC', unique: true }) + username!: string; + + @Column({ type: DataType.STRING(255) }) + @Index({ name: 'uk_name', using: 'BTREE', order: 'ASC', unique: true }) + pass!: string; + + @Column({ + field: 'created_at', + type: DataType.DATE, + defaultValue: DataType.NOW, + }) + createdAt?: Date; + + @Column({ + field: 'updated_at', + type: DataType.DATE, + defaultValue: DataType.NOW, + }) + updatedAt?: Date; + + @Column({ field: 'deleted_at', allowNull: true, type: DataType.DATE }) + deletedAt?: Date; +} diff --git a/models/userLogin.ts b/models/userLogin.ts new file mode 100644 index 0000000..af1c76a --- /dev/null +++ b/models/userLogin.ts @@ -0,0 +1,36 @@ +import { + Model, + Table, + Column, + DataType, + Index, + Sequelize, + ForeignKey, +} from 'sequelize-typescript'; + +export interface userLoginAttributes { + id?: number; + userId: number; + timeStamp: Date; + ip: string; +} + +@Table({ tableName: 'user_login', timestamps: false }) +export class userLogin + extends Model + implements userLoginAttributes +{ + @Column({ primaryKey: true, autoIncrement: true, type: DataType.INTEGER }) + @Index({ name: 'PRIMARY', using: 'BTREE', order: 'ASC', unique: true }) + id?: number; + + @Column({ field: 'user_id', type: DataType.INTEGER }) + @Index({ name: 'uk_user_id', using: 'BTREE', order: 'ASC', unique: true }) + userId!: number; + + @Column({ field: 'time_stamp', type: DataType.DATE }) + timeStamp!: Date; + + @Column({ type: DataType.STRING(225) }) + ip!: string; +}