Second part of backend rework

- Improved consistency in routes
- Fixed permission issues
- Added new endpoints
- Fixed some issues
- SQL: Switched status to ENUM
- SQL: Changed rooms table
- SQL: Added unique constraints
This commit is contained in:
2024-02-26 16:07:09 +01:00
parent ab72bf2593
commit 323e934cd7
7 changed files with 470 additions and 134 deletions

View File

@@ -43,7 +43,7 @@ CREATE TABLE users (
email_verified BOOLEAN NOT NULL DEFAULT FALSE,
phone VARCHAR(32) DEFAULT 'None',
phone_verified BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY (id),
PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE user_roles (
@@ -99,7 +99,7 @@ CREATE TABLE doctors (
email VARCHAR(255) NOT NULL,
phone VARCHAR(20) NOT NULL,
speciality VARCHAR(255) NOT NULL,
status VARCHAR(255) NOT NULL,
status ENUM('Available', 'Absent', 'Unavailable') NOT NULL,
is_verified BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY (id),
CONSTRAINT dt_user_id
@@ -107,7 +107,8 @@ CREATE TABLE doctors (
REFERENCES users(id)
ON DELETE RESTRICT
ON UPDATE CASCADE,
INDEX dt_user_id_idx (user_id)
INDEX dt_user_id_idx (user_id),
CONSTRAINT uc_doctor_user_id UNIQUE (user_id)
) ENGINE=InnoDB;
CREATE TABLE patients (
@@ -118,7 +119,8 @@ CREATE TABLE patients (
address VARCHAR(255) NOT NULL,
social_security_number VARCHAR(128) NOT NULL,
insurance_number VARCHAR(128) NOT NULL,
PRIMARY KEY (id)
PRIMARY KEY (id),
CONSTRAINT uc_user_id UNIQUE (user_id)
) ENGINE=InnoDB;
CREATE TABLE services (
@@ -126,7 +128,6 @@ CREATE TABLE services (
name VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
price DECIMAL(10, 2) NOT NULL,
status VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;
@@ -178,7 +179,11 @@ CREATE TABLE rooms (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
hospital_id INT UNSIGNED NOT NULL,
name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
code VARCHAR(3) NOT NULL,
floor INT UNSIGNED NOT NULL,
room_number INT UNSIGNED NOT NULL,
room_type ENUM('General Ward', 'Private', 'Intensive Care Unit', 'Labor and Delivery', 'Operating', 'Recovery', 'Isolation', 'Emergency', 'Imaging', 'Procedure', 'Physical Therapy', 'Consultation') NOT NULL,
PRIMARY KEY (id),
CONSTRAINT ch_hospital_id
FOREIGN KEY (hospital_id)
REFERENCES hospitals(id)
@@ -213,8 +218,8 @@ CREATE TABLE appointments (
room_id INT UNSIGNED DEFAULT NULL,
date DATE NOT NULL,
time TIME NOT NULL,
status VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
status ENUM('Confirmed', 'Completed', 'Absent', 'Cancelled by Patient', 'Cancelled by Doctor') NOT NULL,
PRIMARY KEY (id),
CONSTRAINT ap_patient_id
FOREIGN KEY (patient_id)
REFERENCES patients(id)