- Updated LoanTable component to fetch loan data from new API endpoint and display notes. - Enhanced UserTable component to include additional user fields (first name, last name, email, admin status) and updated input handling. - Modified fetcher utility to use new user data API endpoint. - Adjusted login functionality to point to the new admin login endpoint and handle unauthorized access. - Refactored user actions utility to align with updated API endpoints for user management. - Updated backend routes for user and loan data management to reflect new structure and naming conventions. - Revised SQL schema and mock data to accommodate new fields and constraints. - Changed Docker configuration to use the new database name.
54 lines
1.8 KiB
SQL
54 lines
1.8 KiB
SQL
use borrow_system_new;
|
|
|
|
CREATE TABLE users (
|
|
id int NOT NULL AUTO_INCREMENT,
|
|
username varchar(100) NOT NULL UNIQUE,
|
|
password varchar(255) NOT NULL,
|
|
email varchar(255) NOT NULL,
|
|
first_name varchar(255) NOT NULL,
|
|
last_name varchar(255) NOT NULL,
|
|
role int NOT NULL,
|
|
is_admin bool NOT NULL DEFAULT false,
|
|
entry_created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
entry_updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id)
|
|
) ENGINE=InnoDB;
|
|
|
|
CREATE TABLE loans (
|
|
id int NOT NULL AUTO_INCREMENT,
|
|
username varchar(100) NOT NULL,
|
|
loan_code Char(6) NOT NULL UNIQUE,
|
|
start_date timestamp NOT NULL,
|
|
end_date timestamp NOT NULL,
|
|
take_date timestamp NULL DEFAULT NULL,
|
|
returned_date timestamp NULL DEFAULT NULL,
|
|
created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
loaned_items_id json NOT NULL DEFAULT ('[]'),
|
|
loaned_items_name json NOT NULL DEFAULT ('[]'),
|
|
deleted bool NOT NULL DEFAULT false,
|
|
note varchar(500) DEFAULT NULL,
|
|
PRIMARY KEY (id),
|
|
CHECK (loan_code REGEXP '^[0-9]{6}$')
|
|
) ENGINE=InnoDB;
|
|
|
|
CREATE TABLE items (
|
|
id int NOT NULL AUTO_INCREMENT,
|
|
item_name varchar(255) NOT NULL UNIQUE,
|
|
can_borrow_role INT NOT NULL,
|
|
in_safe bool NOT NULL DEFAULT true,
|
|
entry_created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
entry_updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
last_borrowed_person varchar(255) DEFAULT NULL,
|
|
currently_borrowing varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE apiKeys (
|
|
id INT NOT NULL AUTO_INCREMENT,
|
|
api_key CHAR(15) NOT NULL UNIQUE,
|
|
entry_name VARCHAR(100) NOT NULL,
|
|
last_used_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
entry_created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id),
|
|
CHECK (api_key REGEXP '^[0-9]{15}$')
|
|
) ENGINE=InnoDB; |