38960-vm/db/migrations/20260304_create_appointments_module.sql
2026-03-04 13:05:05 +00:00

38 lines
1.3 KiB
SQL

-- Create appointments table
CREATE TABLE IF NOT EXISTS appointments (
id INT AUTO_INCREMENT PRIMARY KEY,
patient_id INT NOT NULL,
doctor_id INT NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME NOT NULL,
status ENUM('Scheduled', 'Completed', 'Cancelled') DEFAULT 'Scheduled',
reason TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (patient_id) REFERENCES patients(id) ON DELETE CASCADE,
FOREIGN KEY (doctor_id) REFERENCES doctors(id) ON DELETE CASCADE
);
-- Create holidays table
CREATE TABLE IF NOT EXISTS holidays (
id INT AUTO_INCREMENT PRIMARY KEY,
holiday_date DATE NOT NULL,
name_en VARCHAR(255) NOT NULL,
name_ar VARCHAR(255) NOT NULL,
is_recurring BOOLEAN DEFAULT FALSE
);
-- Create doctor schedules table (working hours)
CREATE TABLE IF NOT EXISTS doctor_schedules (
id INT AUTO_INCREMENT PRIMARY KEY,
doctor_id INT NOT NULL,
day_of_week INT NOT NULL, -- 0 (Sunday) to 6 (Saturday)
start_time TIME NOT NULL,
end_time TIME NOT NULL,
FOREIGN KEY (doctor_id) REFERENCES doctors(id) ON DELETE CASCADE
);
-- Seed some holidays
INSERT INTO holidays (holiday_date, name_en, name_ar, is_recurring) VALUES
('2026-01-01', 'New Year', 'رأس السنة', TRUE),
('2026-12-25', 'Christmas', 'عيد الميلاد', TRUE);