added schema.sql
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -38,6 +38,7 @@ go.work
|
|||||||
!*.html
|
!*.html
|
||||||
!go.sum
|
!go.sum
|
||||||
!go.mod
|
!go.mod
|
||||||
|
!*.sql
|
||||||
|
|
||||||
!README.md
|
!README.md
|
||||||
!LICENSE
|
!LICENSE
|
||||||
|
|||||||
111
internal/database/schema.sql
Normal file
111
internal/database/schema.sql
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
CREATE TABLE users (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
created_at DATETIME NOT NULL,
|
||||||
|
updated_at DATETIME NOT NULL,
|
||||||
|
first_name VARCHAR(50) NOT NULL,
|
||||||
|
last_name VARCHAR(50) NOT NULL,
|
||||||
|
phone VARCHAR(15),
|
||||||
|
email VARCHAR(100) NOT NULL UNIQUE,
|
||||||
|
password VARCHAR(255) NOT NULL,
|
||||||
|
salt VARCHAR(255) NOT NULL,
|
||||||
|
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),
|
||||||
|
notes TEXT,
|
||||||
|
status VARCHAR(50),
|
||||||
|
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE SET NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE banking (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
user_id INT,
|
||||||
|
iban VARCHAR(34) NOT NULL,
|
||||||
|
bic VARCHAR(11) NOT NULL,
|
||||||
|
mandate_reference VARCHAR(50),
|
||||||
|
mandate_date_signed DATE,
|
||||||
|
bank_name VARCHAR(100),
|
||||||
|
account_holder_name VARCHAR(100),
|
||||||
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE membership (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
user_id INT,
|
||||||
|
membership_fee DECIMAL(10, 2),
|
||||||
|
rental_fee 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
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE rentals (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
car_id INT,
|
||||||
|
user_id INT,
|
||||||
|
start_datetime DATETIME NOT NULL,
|
||||||
|
end_datetime DATETIME NOT NULL,
|
||||||
|
booking_datetime DATETIME NOT NULL,
|
||||||
|
total_cost DECIMAL(10, 2),
|
||||||
|
payment_method VARCHAR(50),
|
||||||
|
status VARCHAR(50),
|
||||||
|
FOREIGN KEY (car_id) REFERENCES cars(id),
|
||||||
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE roles (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
role_name VARCHAR(50) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE consents (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
user_id INT,
|
||||||
|
modified DATE,
|
||||||
|
created DATE,
|
||||||
|
first_name VARCHAR(255),
|
||||||
|
last_name VARCHAR(255),
|
||||||
|
email VARCHAR(255),
|
||||||
|
type VARCHAR(255),
|
||||||
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE cars (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
licence_plate VARCHAR(15) NOT NULL UNIQUE,
|
||||||
|
insurance VARCHAR(255) NOT NULL,
|
||||||
|
acquired_date DATE NOT NULL,
|
||||||
|
monthly_expenses DECIMAL(10, 2) NOT NULL,
|
||||||
|
make VARCHAR(50),
|
||||||
|
model VARCHAR(50),
|
||||||
|
year INT,
|
||||||
|
mileage INT,
|
||||||
|
last_service_date DATE,
|
||||||
|
status VARCHAR(50),
|
||||||
|
vin VARCHAR(17) UNIQUE,
|
||||||
|
fuel_type VARCHAR(20),
|
||||||
|
gps BOOLEAN,
|
||||||
|
current_location VARCHAR(255),
|
||||||
|
service_history TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE email_verifications (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
user_id INT,
|
||||||
|
verification_token VARCHAR(255) NOT NULL,
|
||||||
|
created_at DATETIME NOT NULL,
|
||||||
|
verified_at DATETIME,
|
||||||
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user