refactoring db; added email-verification

This commit is contained in:
$(pass /github/name)
2024-07-08 23:43:55 +02:00
parent 555d1be575
commit 87e9f71ceb
20 changed files with 890 additions and 255 deletions

View File

@@ -1,5 +1,5 @@
CREATE TABLE users (
id INT PRIMARY KEY,
id INTEGER PRIMARY KEY,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
first_name VARCHAR(50) NOT NULL,
@@ -11,7 +11,6 @@ CREATE TABLE users (
drivers_id_checked BOOLEAN,
role_id INT,
payment_status VARCHAR(50),
membership_status VARCHAR(50),
date_of_birth DATE,
address VARCHAR(255),
profile_picture VARCHAR(255),
@@ -21,7 +20,7 @@ CREATE TABLE users (
);
CREATE TABLE banking (
id INT PRIMARY KEY,
id INTEGER PRIMARY KEY,
user_id INT,
iban VARCHAR(34) NOT NULL,
bic VARCHAR(11) NOT NULL,
@@ -32,25 +31,31 @@ CREATE TABLE banking (
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE TABLE membership (
id INT PRIMARY KEY,
user_id INT,
membership_fee DECIMAL(10, 2),
rental_fee DECIMAL(10, 2),
CREATE TABLE memberships (
id INTEGER PRIMARY KEY,
user_id INT NOT NULL,
parent_id INT,
model_id INT,
start_date DATE,
end_date DATE,
status VARCHAR(50),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE TABLE membership_plans (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
monthly_fee DECIMAL(10, 2),
hourly_rate DECIMAL(10, 2),
included_hours_per_year INT,
remaining_hours_per_year INT,
included_hours_per_month INT,
remaining_hours_per_month INT,
membership_model VARCHAR(50),
membership_id VARCHAR(50),
membership_start_date DATE,
membership_end_date DATE,
discount_rate DECIMAL(5, 2),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
details TEXT
);
CREATE TABLE rentals (
id INT PRIMARY KEY,
id INTEGER PRIMARY KEY,
car_id INT,
user_id INT,
start_datetime DATETIME NOT NULL,
@@ -64,12 +69,12 @@ CREATE TABLE rentals (
);
CREATE TABLE roles (
id INT PRIMARY KEY,
id INTEGER PRIMARY KEY,
role_name VARCHAR(50) NOT NULL
);
CREATE TABLE consents (
id INT PRIMARY KEY,
id INTEGER PRIMARY KEY,
user_id INT,
updated_at DATE,
created_at DATE,
@@ -81,7 +86,7 @@ CREATE TABLE consents (
);
CREATE TABLE cars (
id INT PRIMARY KEY,
id INTEGER PRIMARY KEY,
licence_plate VARCHAR(15) NOT NULL UNIQUE,
insurance VARCHAR(255) NOT NULL,
acquired_date DATE NOT NULL,
@@ -100,10 +105,10 @@ CREATE TABLE cars (
);
CREATE TABLE email_verifications (
id INT PRIMARY KEY,
id INTEGER PRIMARY KEY,
user_id INT,
verification_token VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL,
verified_at DATETIME,
verified_at DATETIME DEFAULT NULL,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);