-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Sep 01, 2025 at 05:50 AM
-- Server version: 10.4.32-MariaDB
-- PHP Version: 8.2.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `school`
--

-- --------------------------------------------------------

--
-- Table structure for table `attendance_data`
--

CREATE TABLE `attendance_data` (
  `id` int(11) UNSIGNED NOT NULL,
  `class_id` int(11) NOT NULL,
  `class_section_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `date` date NOT NULL,
  `status` enum('present','absent','late') NOT NULL DEFAULT 'present',
  `reason` text DEFAULT NULL,
  `reported` tinyint(4) DEFAULT NULL,
  `semester` varchar(25) NOT NULL,
  `school_year` varchar(9) NOT NULL,
  `modified_by` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `attendance_record`
--

CREATE TABLE `attendance_record` (
  `id` int(11) UNSIGNED NOT NULL,
  `class_section_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `total_absence` int(11) NOT NULL DEFAULT 0,
  `total_late` int(11) NOT NULL DEFAULT 0,
  `total_presence` int(11) NOT NULL DEFAULT 0,
  `total_attendance` int(11) NOT NULL DEFAULT 0,
  `semester` varchar(25) NOT NULL,
  `school_year` varchar(9) NOT NULL,
  `modified_by` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `attendance_tracking`
--

CREATE TABLE `attendance_tracking` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) UNSIGNED NOT NULL,
  `date` date NOT NULL,
  `is_reported` tinyint(1) NOT NULL DEFAULT 0,
  `reason` text DEFAULT NULL,
  `is_notified` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `authorized_users`
--

CREATE TABLE `authorized_users` (
  `id` int(11) UNSIGNED NOT NULL,
  `user_id` int(11) NOT NULL,
  `authorized_user_id` int(11) DEFAULT NULL,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `phone_number` varchar(25) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `email` varchar(255) NOT NULL,
  `relation_to_user` varchar(64) DEFAULT NULL,
  `token` varchar(128) DEFAULT NULL,
  `status` enum('Pending','Active') DEFAULT 'Pending',
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `calendar_events`
--

CREATE TABLE `calendar_events` (
  `id` int(11) UNSIGNED NOT NULL,
  `title` varchar(255) NOT NULL,
  `date` date NOT NULL,
  `description` text DEFAULT NULL,
  `notify_parent` tinyint(1) NOT NULL DEFAULT 0,
  `notify_admin` tinyint(1) NOT NULL DEFAULT 0,
  `notify_teacher` tinyint(1) NOT NULL DEFAULT 0,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `notification_sent` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `calendar_events`
--

INSERT INTO `calendar_events` (`id`, `title`, `date`, `description`, `notify_parent`, `notify_admin`, `notify_teacher`, `semester`, `school_year`, `notification_sent`, `created_at`, `updated_at`) VALUES
(1, 'First Day of School', '2025-09-21', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:30:03', '2025-07-27 17:30:03'),
(2, 'Last Day of Registration', '2025-10-01', 'Registration ends at midnight', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:32:00', '2025-07-27 17:32:00'),
(3, 'November Break', '2025-11-30', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:32:26', '2025-07-27 17:32:26'),
(4, 'Winter Break 1', '2025-12-21', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:32:47', '2025-07-27 17:32:47'),
(5, 'Winter Break 2', '2025-12-28', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:33:08', '2025-07-27 17:33:08'),
(6, 'Midterm Exam', '2026-01-18', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:33:22', '2025-07-27 17:33:57'),
(7, 'February Break', '2026-02-15', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:34:17', '2025-07-27 17:34:17'),
(8, 'Ramadan Last 10 Break', '2026-03-15', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-07-27 17:34:43', '2025-07-27 17:34:54'),
(9, 'Eid Al-Fitr Break', '2026-03-22', '', 0, 0, 0, 'Fall', '2024-2025', 0, '2025-07-27 17:35:15', '2025-07-27 17:35:15'),
(10, 'April Break', '2026-04-19', '', 0, 0, 0, 'Fall', '2024-2025', 0, '2025-07-27 17:35:34', '2025-07-27 17:35:34'),
(11, 'Final Exam', '2026-05-17', '', 0, 0, 0, 'Fall', '2024-2025', 0, '2025-07-27 17:35:49', '2025-07-27 17:36:29'),
(12, 'May Break', '2026-05-24', '', 0, 0, 0, 'Fall', '2024-2025', 0, '2025-07-27 17:36:09', '2025-07-27 17:36:39'),
(13, 'Ceremony Day', '2026-05-31', 'Last Day of School', 0, 0, 0, 'Fall', '2024-2025', 0, '2025-07-27 17:37:14', '2025-07-27 17:39:39'),
(14, 'Eid Al-Fitr Break', '2026-03-22', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-09-01 00:02:09', '2025-09-01 00:02:09'),
(15, 'April Break', '2026-04-19', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-09-01 00:04:18', '2025-09-01 00:04:18'),
(16, 'Final Exam', '2026-05-17', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-09-01 00:04:38', '2025-09-01 00:04:38'),
(17, 'May Break', '2026-05-24', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-09-01 00:04:57', '2025-09-01 00:04:57'),
(18, 'Ceremony Day / Lay Day of School', '2026-05-31', '', 0, 0, 0, 'Fall', '2025-2026', 0, '2025-09-01 00:05:30', '2025-09-01 00:05:30');

-- --------------------------------------------------------

--
-- Table structure for table `chapters`
--

CREATE TABLE `chapters` (
  `id` int(11) UNSIGNED NOT NULL,
  `chapter_name` varchar(100) NOT NULL,
  `class_section_id` int(11) NOT NULL,
  `school_year` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `classes`
--

CREATE TABLE `classes` (
  `id` int(11) UNSIGNED NOT NULL,
  `class_name` varchar(100) NOT NULL,
  `schedule` varchar(100) NOT NULL,
  `capacity` int(11) NOT NULL,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `classes`
--

INSERT INTO `classes` (`id`, `class_name`, `schedule`, `capacity`, `semester`, `school_year`) VALUES
(1, 'KG', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(2, '1', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(3, '2', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(4, '3', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(5, '4', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(6, '5', 'Sunday 10:00 PM - 1:00 PM', 30, '', '-1'),
(7, '6', 'Sunday 10:00 PM - 1:00 PM', 30, '', '-1'),
(8, '7', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(9, '8', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(10, '9', 'Sunday 10:00 PM - 1:00 PM', 30, '', '-1'),
(11, '10', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(12, '11', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1'),
(13, 'youth', 'Sunday 10:00 AM - 1:00 PM', 30, '', '-1');

-- --------------------------------------------------------

--
-- Table structure for table `classSection`
--

CREATE TABLE `classSection` (
  `id` int(11) UNSIGNED NOT NULL,
  `class_id` int(11) UNSIGNED NOT NULL,
  `class_section_id` int(11) UNSIGNED NOT NULL,
  `class_section_name` varchar(100) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `classSection`
--

INSERT INTO `classSection` (`id`, `class_id`, `class_section_id`, `class_section_name`, `created_at`, `updated_at`, `semester`, `school_year`) VALUES
(1, 1, 1, 'KG', '2024-08-16 01:06:30', '2024-08-23 16:30:43', '', NULL),
(2, 2, 10, '1', '2024-08-16 01:06:30', '2024-08-23 16:30:43', '', NULL),
(3, 2, 11, '1-A', '2024-08-16 01:06:30', '2024-08-23 17:15:54', '', NULL),
(4, 2, 12, '1-B', '2024-08-16 01:06:30', '2024-08-23 17:15:54', '', NULL),
(5, 2, 13, '1-C', '2024-08-16 01:06:30', '2024-08-23 17:15:54', '', NULL),
(6, 3, 20, '2', '2024-08-16 01:06:30', '2024-08-23 17:16:30', '', NULL),
(7, 3, 21, '2-A', '2024-08-16 01:06:30', '2024-08-23 17:16:30', '', NULL),
(8, 3, 22, '2-B', '2024-08-16 01:06:30', '2024-08-23 17:16:30', '', NULL),
(9, 3, 23, '2-C', '2024-08-16 01:06:30', '2024-08-23 17:16:30', '', NULL),
(10, 4, 30, '3', '2024-08-16 01:06:30', '2024-08-23 17:18:14', '', NULL),
(11, 4, 31, '3-A', '2024-08-16 01:06:30', '2024-08-23 17:18:14', '', NULL),
(12, 4, 32, '3-B', '2024-08-16 01:06:30', '2024-08-23 17:18:14', '', NULL),
(13, 4, 33, '3-C', '2024-08-16 01:06:30', '2024-08-23 17:18:14', '', NULL),
(14, 5, 40, '4', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(15, 5, 41, '4-A', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(16, 5, 42, '4-B', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(17, 5, 43, '4-C', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(18, 6, 50, '5', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(19, 6, 51, '5-A', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(20, 6, 52, '5-B', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(21, 6, 53, '5-C', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(22, 7, 60, '6', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(23, 7, 61, '6-A', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(24, 7, 62, '6-B', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(25, 7, 63, '6-C', '2024-08-16 01:06:30', '2024-08-23 17:19:31', '', NULL),
(26, 8, 70, '7', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(27, 8, 71, '7-A', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(28, 8, 72, '7-B', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(29, 8, 73, '7-C', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(30, 9, 80, '8', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(31, 9, 81, '8-A', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(32, 9, 82, '8-B', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(33, 9, 83, '8-C', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(34, 10, 90, '9', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(35, 10, 91, '9-A', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(36, 10, 92, '9-B', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(37, 10, 93, '9-C', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(38, 11, 100, '10', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(39, 11, 101, '10-A', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(40, 11, 102, '10-B', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(41, 11, 103, '10-C', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(42, 12, 110, '11', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(43, 12, 111, '11-A', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(44, 12, 112, '11-B', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(45, 12, 113, '11-C', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(46, 13, 120, 'youth', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(47, 13, 121, 'youth-A', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(48, 13, 122, 'youth-B', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL),
(49, 13, 123, 'youth-C', '2024-08-16 01:06:30', '2024-08-23 17:21:41', '', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `class_preparation_log`
--

CREATE TABLE `class_preparation_log` (
  `id` int(10) UNSIGNED NOT NULL,
  `class_section_id` int(10) UNSIGNED NOT NULL,
  `class_section` varchar(100) DEFAULT NULL,
  `school_year` varchar(9) NOT NULL,
  `prep_data` text NOT NULL,
  `created_at` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `configuration`
--

CREATE TABLE `configuration` (
  `id` int(11) UNSIGNED NOT NULL,
  `config_key` varchar(100) NOT NULL,
  `config_value` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `configuration`
--

INSERT INTO `configuration` (`id`, `config_key`, `config_value`) VALUES
(1, 'date_age_reference', '2025-12-31'),
(2, 'stickerWidth', '102'),
(3, 'stickerHeight', '34'),
(4, 'pageWidth', '216'),
(5, 'pageHeight', '280'),
(6, 'leftMargin', '4'),
(7, 'topMargin', '19'),
(8, 'horizontalGap', '5'),
(9, 'verticalGap', '0'),
(10, 'enable_attendance', '0'),
(11, 'due_date', '2025-09-21'),
(12, 'max_emergency', '1'),
(13, 'pass_score', '60'),
(14, 'weeks_study', '35'),
(15, 'end_school_day', '2026-06-01'),
(16, 'max_age', '18'),
(17, 'min_age', '5'),
(18, 'trophy_score', '94'),
(19, 'max_kids', '5'),
(20, 'cleanup_timeout', '900'),
(21, 'enrollment_deadline', '2025-10-01'),
(22, 'school_year', '2025-2026'),
(23, 'youth_fee', '200'),
(24, 'second_student_fee', '220'),
(25, 'first_student_fee', '370'),
(26, 'total_semester1_days', '14'),
(27, 'semester', 'Fall'),
(28, 'refund_deadline', '2025-12-31'),
(29, 'total_semester2_days', '13'),
(30, 'delete_email_notify', 'support@alrahmaisgl.org, melabidi@alrahmaisgl.org'),
(31, 'school_start_date', '2025-09-21'),
(32, 'sandbox_secret_paypal', '[REDACTED]'),
(33, 'sandbox_verifylink_paypal', 'https://api-m.sandbox.paypal.com/v1/notifications/verify-webhook-signature'),
(34, 'sandbox_tokenurl_paypal', 'https://api-m.sandbox.paypal.com/v1/oauth2/token'),
(35, 'sandbox_clientid_paypal', 'AYsiOekZUvrjgx9C5c554ZeSQ4W6yd0ZX-OHE93_D0fWoa4YXrMmroEeLiAjjdCKkELH8EVZR_yGMLPS'),
(36, 'sandbox_webhookid_paypal', '0EU27043LC060650D'),
(37, 'production_verifylink_paypal', 'https://api-m.paypal.com/v1/notifications/verify-webhook-signature'),
(38, 'production_webhookid_paypal', '0H5876426L0092829'),
(39, 'production_secret_paypal', '[REDACTED]'),
(40, 'production_clientid_paypal', 'AQhCgmypaitgLgretMqNrh_7mEG5fAmwCECxCxevuLDQfsQVwECFyQOU50byzPzFrwd0cVVD8r2lujIB'),
(41, 'production_tokenurl_paypal', 'https://api-m.paypal.com/v1/oauth2/token'),
(42, 'comment_reviewer', 'administrator, principal'),
(43, 'paypal_mode', 'sandbox');

-- --------------------------------------------------------

--
-- Table structure for table `contactus`
--

CREATE TABLE `contactus` (
  `id` int(11) UNSIGNED NOT NULL,
  `sender_id` int(11) UNSIGNED NOT NULL,
  `reciever_id` int(11) UNSIGNED NOT NULL,
  `subject` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `current_flag`
--

CREATE TABLE `current_flag` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `student_name` varchar(255) NOT NULL,
  `grade` varchar(50) NOT NULL,
  `flag` enum('payment','attendance','grade','behavior','other') NOT NULL,
  `flag_datetime` datetime NOT NULL,
  `flag_state` enum('Open','Closed','Canceled') DEFAULT 'Open',
  `updated_by_open` int(11) DEFAULT NULL,
  `open_description` text DEFAULT NULL,
  `updated_by_closed` int(11) DEFAULT NULL,
  `close_description` text DEFAULT NULL,
  `updated_by_canceled` int(11) DEFAULT NULL,
  `cancel_description` text DEFAULT NULL,
  `semester` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `school_year` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `discount_usages`
--

CREATE TABLE `discount_usages` (
  `id` int(11) UNSIGNED NOT NULL,
  `voucher_id` int(11) NOT NULL,
  `invoice_id` int(11) UNSIGNED NOT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `discount_amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `school_year` varchar(9) NOT NULL,
  `updated_by` int(11) DEFAULT NULL,
  `used_at` datetime DEFAULT current_timestamp(),
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp(),
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `discount_vouchers`
--

CREATE TABLE `discount_vouchers` (
  `id` int(11) UNSIGNED NOT NULL,
  `code` varchar(50) NOT NULL,
  `discount_type` enum('percent','fixed') NOT NULL DEFAULT 'percent',
  `discount_value` decimal(10,2) NOT NULL,
  `max_uses` int(11) DEFAULT 1,
  `times_used` int(11) DEFAULT 0,
  `valid_from` date DEFAULT NULL,
  `valid_until` date DEFAULT NULL,
  `is_active` tinyint(1) DEFAULT 1,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `emergency_contacts`
--

CREATE TABLE `emergency_contacts` (
  `id` int(11) UNSIGNED NOT NULL,
  `emergency_contact_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `cellphone` varchar(20) NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  `relation` varchar(50) NOT NULL,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `enrollments`
--

CREATE TABLE `enrollments` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `class_section_id` int(10) UNSIGNED DEFAULT NULL,
  `parent_id` int(10) UNSIGNED NOT NULL,
  `enrollment_date` date NOT NULL,
  `enrollment_status` enum('admission under review','payment pending','enrolled','withdraw under review','refund pending','withdrawn') NOT NULL DEFAULT 'admission under review',
  `withdrawal_date` date DEFAULT NULL,
  `is_withdrawn` tinyint(1) NOT NULL DEFAULT 0,
  `admission_status` enum('pending','accepted','denied') NOT NULL DEFAULT 'pending',
  `semester` varchar(25) DEFAULT NULL,
  `school_year` varchar(25) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `events`
--

CREATE TABLE `events` (
  `id` int(11) UNSIGNED NOT NULL,
  `event_name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `amount` decimal(10,2) NOT NULL,
  `flyer` varchar(255) DEFAULT NULL,
  `expiration_date` date NOT NULL,
  `semester` varchar(50) DEFAULT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_by` int(11) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `event_charges`
--

CREATE TABLE `event_charges` (
  `id` int(11) UNSIGNED NOT NULL,
  `event_id` int(11) UNSIGNED NOT NULL,
  `parent_id` int(11) UNSIGNED DEFAULT NULL,
  `student_id` int(11) UNSIGNED DEFAULT NULL,
  `participation` enum('yes','no') DEFAULT NULL,
  `charged` tinyint(1) DEFAULT 0,
  `semester` varchar(50) DEFAULT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `updated_by` int(11) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `examquestiondistribution`
--

CREATE TABLE `examquestiondistribution` (
  `id` int(11) NOT NULL,
  `exam_distribution_id` int(11) NOT NULL,
  `exam_id` int(11) NOT NULL,
  `question_type_id` int(11) NOT NULL,
  `num_questions` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `examquestions`
--

CREATE TABLE `examquestions` (
  `id` int(11) NOT NULL,
  `exam_question_id` int(11) NOT NULL,
  `exam_id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `exams`
--

CREATE TABLE `exams` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` char(36) NOT NULL,
  `student_school_id` char(36) NOT NULL,
  `class_section_id` int(11) NOT NULL,
  `exam_name` varchar(100) NOT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `expenses`
--

CREATE TABLE `expenses` (
  `id` int(11) UNSIGNED NOT NULL,
  `category` enum('Expense','Purchase','Reimbursement') NOT NULL,
  `amount` decimal(10,2) NOT NULL,
  `receipt_path` varchar(255) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `purchased_by` int(11) UNSIGNED DEFAULT NULL,
  `added_by` int(11) UNSIGNED NOT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL,
  `status` enum('pending','approved','denied') NOT NULL DEFAULT 'pending',
  `status_reason` text DEFAULT NULL,
  `updated_by` int(11) UNSIGNED DEFAULT NULL,
  `approved_by` int(11) UNSIGNED DEFAULT NULL,
  `reimbursement_id` int(11) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `final_exam`
--

CREATE TABLE `final_exam` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) NOT NULL,
  `score` float DEFAULT NULL,
  `semester` varchar(25) NOT NULL DEFAULT 'Spring',
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `final_score`
--

CREATE TABLE `final_score` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) NOT NULL,
  `score` float NOT NULL,
  `score_letter` varchar(9) DEFAULT NULL,
  `comment` text DEFAULT NULL,
  `school_year` varchar(9) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `semester` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `flag`
--

CREATE TABLE `flag` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `student_name` varchar(255) NOT NULL,
  `grade` varchar(50) NOT NULL,
  `flag` enum('payment','attendance','grade','behavior','other') NOT NULL,
  `flag_datetime` datetime NOT NULL,
  `flag_state` enum('Closed','Canceled') NOT NULL,
  `updated_by_open` int(11) DEFAULT NULL,
  `open_description` text DEFAULT NULL,
  `updated_by_closed` int(11) DEFAULT NULL,
  `close_description` text DEFAULT NULL,
  `updated_by_canceled` int(11) DEFAULT NULL,
  `cancel_description` text DEFAULT NULL,
  `semester` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `school_year` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `homework`
--

CREATE TABLE `homework` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) NOT NULL,
  `homework_index` tinyint(4) DEFAULT NULL,
  `score` float DEFAULT NULL,
  `comment` text DEFAULT NULL,
  `semester` varchar(25) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `invoices`
--

CREATE TABLE `invoices` (
  `id` int(11) UNSIGNED NOT NULL,
  `parent_id` int(11) NOT NULL,
  `invoice_number` varchar(50) NOT NULL,
  `total_amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `balance` decimal(10,2) DEFAULT 0.00,
  `paid_amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `has_discount` tinyint(1) NOT NULL DEFAULT 0 COMMENT '1 if discount applied, 0 no discount',
  `issue_date` date NOT NULL,
  `due_date` date DEFAULT NULL,
  `status` varchar(50) NOT NULL DEFAULT '''unpaid''',
  `description` text DEFAULT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
  `updated_by` int(11) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `invoice_event`
--

CREATE TABLE `invoice_event` (
  `id` int(11) UNSIGNED NOT NULL,
  `invoice_id` int(11) UNSIGNED NOT NULL,
  `event_name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `amount` decimal(10,2) NOT NULL,
  `semester` varchar(50) DEFAULT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `updated_by` int(11) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `invoice_students_list`
--

CREATE TABLE `invoice_students_list` (
  `id` int(11) UNSIGNED NOT NULL,
  `invoice_id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) UNSIGNED NOT NULL,
  `student_firstname` varchar(100) NOT NULL,
  `student_lastname` varchar(100) NOT NULL,
  `school_id` int(11) UNSIGNED NOT NULL,
  `enrolled` tinyint(1) DEFAULT 1,
  `school_year` varchar(9) NOT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `ip_attempts`
--

CREATE TABLE `ip_attempts` (
  `id` int(11) UNSIGNED NOT NULL,
  `ip_address` varchar(45) NOT NULL,
  `attempts` int(11) NOT NULL DEFAULT 0,
  `last_attempt_at` datetime NOT NULL,
  `blocked_until` datetime DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `login_activity`
--

CREATE TABLE `login_activity` (
  `id` int(11) UNSIGNED NOT NULL,
  `user_id` int(11) NOT NULL,
  `email` varchar(255) NOT NULL,
  `login_time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `logout_time` timestamp NULL DEFAULT NULL,
  `ip_address` varchar(255) NOT NULL,
  `user_agent` varchar(255) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `longanswerquestions`
--

CREATE TABLE `longanswerquestions` (
  `id` int(11) NOT NULL,
  `la_question_id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  `correct_answer` text DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `manual_payments`
--

CREATE TABLE `manual_payments` (
  `id` int(11) UNSIGNED NOT NULL,
  `invoice_number` varchar(100) DEFAULT NULL,
  `amount` decimal(10,2) DEFAULT NULL,
  `payment_method` varchar(100) DEFAULT NULL,
  `reference` varchar(255) DEFAULT NULL,
  `discount_number` int(11) DEFAULT NULL,
  `proof_path` varchar(255) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `messages`
--

CREATE TABLE `messages` (
  `id` int(11) UNSIGNED NOT NULL,
  `sender_id` int(11) NOT NULL,
  `recipient_id` int(11) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `sent_datetime` datetime NOT NULL,
  `read_status` tinyint(1) NOT NULL DEFAULT 0,
  `read_datetime` datetime DEFAULT NULL,
  `message_number` varchar(20) NOT NULL,
  `priority` varchar(10) NOT NULL DEFAULT 'normal',
  `attachment` varchar(255) DEFAULT NULL,
  `status` varchar(10) NOT NULL DEFAULT 'sent',
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `midterm_exam`
--

CREATE TABLE `midterm_exam` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) NOT NULL,
  `score` float DEFAULT NULL,
  `comment` text DEFAULT NULL,
  `semester` varchar(25) NOT NULL DEFAULT 'Fall',
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `migrations`
--

CREATE TABLE `migrations` (
  `id` int(11) UNSIGNED NOT NULL,
  `version` varchar(255) NOT NULL,
  `class` varchar(255) NOT NULL,
  `group` varchar(255) NOT NULL,
  `namespace` varchar(255) NOT NULL,
  `time` int(11) NOT NULL,
  `batch` int(11) UNSIGNED NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `notifications`
--

CREATE TABLE `notifications` (
  `id` int(11) UNSIGNED NOT NULL,
  `title` varchar(255) DEFAULT NULL,
  `message` text NOT NULL,
  `target_group` enum('student','parent','teacher','admin','everyone') NOT NULL,
  `delivery_channels` set('in_app','email','sms') NOT NULL,
  `priority` enum('low','normal','high') DEFAULT 'normal',
  `status` enum('pending','sent','failed') DEFAULT 'pending',
  `action_url` varchar(512) DEFAULT NULL,
  `attachment_path` varchar(512) DEFAULT NULL,
  `scheduled_at` datetime DEFAULT current_timestamp(),
  `sent_at` datetime DEFAULT NULL,
  `expires_at` datetime DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `deleted_at` datetime DEFAULT NULL,
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `notification_recipients`
--

CREATE TABLE `notification_recipients` (
  `id` int(11) UNSIGNED NOT NULL,
  `notification_id` int(11) UNSIGNED NOT NULL,
  `user_id` int(11) UNSIGNED NOT NULL,
  `status` enum('unread','read','delivered','failed') DEFAULT 'unread',
  `delivered_at` datetime DEFAULT NULL,
  `read_at` datetime DEFAULT NULL,
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `parents`
--

CREATE TABLE `parents` (
  `id` int(11) NOT NULL,
  `secondparent_firstname` varchar(100) NOT NULL,
  `secondparent_lastname` varchar(100) NOT NULL,
  `secondparent_gender` enum('Male','Female') DEFAULT NULL,
  `secondparent_email` varchar(150) NOT NULL,
  `secondparent_phone` varchar(15) NOT NULL,
  `firstparent_id` int(11) NOT NULL,
  `secondparent_id` int(11) NOT NULL,
  `semester` varchar(10) DEFAULT NULL,
  `school_year` varchar(20) NOT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `participation`
--

CREATE TABLE `participation` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) NOT NULL,
  `score` float DEFAULT NULL,
  `comment` text DEFAULT NULL,
  `semester` varchar(25) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `participation_score`
--

CREATE TABLE `participation_score` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `school_id` char(100) NOT NULL,
  `class_section_id` int(10) UNSIGNED DEFAULT NULL,
  `teacher_id` int(10) UNSIGNED DEFAULT NULL,
  `score` float DEFAULT NULL,
  `semester` varchar(20) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `password_resets`
--

CREATE TABLE `password_resets` (
  `id` int(11) UNSIGNED NOT NULL,
  `email` varchar(255) NOT NULL,
  `token` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL,
  `expires_at` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `password_reset_requests`
--

CREATE TABLE `password_reset_requests` (
  `id` int(10) UNSIGNED NOT NULL,
  `ip_address` varchar(45) NOT NULL,
  `requested_at` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `payments`
--

CREATE TABLE `payments` (
  `id` int(11) UNSIGNED NOT NULL,
  `parent_id` int(11) UNSIGNED NOT NULL,
  `invoice_id` int(11) UNSIGNED NOT NULL,
  `total_amount` decimal(10,2) NOT NULL,
  `paid_amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `balance` decimal(10,2) NOT NULL,
  `number_of_installments` int(11) NOT NULL,
  `transaction_id` varchar(100) DEFAULT NULL,
  `check_file` varchar(255) DEFAULT NULL,
  `check_number` varchar(100) DEFAULT NULL,
  `payment_method` varchar(50) NOT NULL DEFAULT 'Unknown',
  `payment_date` date NOT NULL,
  `semester` varchar(10) DEFAULT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `status` varchar(50) NOT NULL DEFAULT 'Pending',
  `updated_by` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `payment_error`
--

CREATE TABLE `payment_error` (
  `id` int(11) UNSIGNED NOT NULL,
  `payment_id` int(11) NOT NULL,
  `invoice_id` int(11) NOT NULL,
  `parent_id` int(11) NOT NULL,
  `wrong_paid_amount` decimal(10,2) NOT NULL,
  `wrong_payment_method` varchar(50) NOT NULL,
  `wrong_check_file` varchar(255) DEFAULT NULL,
  `error_note` varchar(255) DEFAULT NULL,
  `logged_at` datetime NOT NULL,
  `logged_by` int(11) DEFAULT NULL,
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `payment_transactions`
--

CREATE TABLE `payment_transactions` (
  `id` int(11) UNSIGNED NOT NULL,
  `transaction_id` varchar(100) NOT NULL,
  `payment_id` int(11) NOT NULL,
  `transaction_date` datetime DEFAULT current_timestamp(),
  `amount` decimal(10,2) NOT NULL,
  `payment_method` varchar(50) NOT NULL,
  `payment_status` varchar(50) NOT NULL DEFAULT 'Pending',
  `transaction_fee` decimal(10,2) DEFAULT 0.00,
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `paypal_payments`
--

CREATE TABLE `paypal_payments` (
  `id` int(11) UNSIGNED NOT NULL,
  `webhook_id` varchar(64) DEFAULT NULL,
  `parent_school_id` varchar(64) DEFAULT NULL,
  `order_id` varchar(64) DEFAULT NULL,
  `transaction_id` varchar(64) DEFAULT NULL,
  `status` varchar(32) DEFAULT NULL,
  `amount` decimal(10,2) DEFAULT NULL,
  `currency` varchar(10) DEFAULT NULL,
  `paypal_fee` decimal(10,2) DEFAULT NULL,
  `net_amount` decimal(10,2) DEFAULT NULL,
  `payer_email` varchar(128) DEFAULT NULL,
  `merchant_id` varchar(64) DEFAULT NULL,
  `event_type` varchar(64) DEFAULT NULL,
  `summary` text DEFAULT NULL,
  `raw_payload` longtext DEFAULT NULL,
  `synced` tinyint(1) NOT NULL DEFAULT 0,
  `sync_attempts` int(11) NOT NULL DEFAULT 0,
  `created_at` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `paypal_transactions`
--

CREATE TABLE `paypal_transactions` (
  `id` int(11) NOT NULL,
  `transaction_id` varchar(100) NOT NULL,
  `payment_id` int(11) DEFAULT NULL,
  `firstname` varchar(100) DEFAULT NULL,
  `lastname` varchar(100) DEFAULT NULL,
  `event_type` varchar(100) NOT NULL,
  `payer_email` varchar(255) DEFAULT NULL,
  `amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `currency` varchar(10) NOT NULL,
  `status` varchar(50) NOT NULL DEFAULT 'Pending',
  `payment_method` varchar(50) NOT NULL,
  `transaction_fee` decimal(10,2) NOT NULL DEFAULT 0.00,
  `raw_data` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `permissions`
--

CREATE TABLE `permissions` (
  `id` int(11) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `permissions`
--

INSERT INTO `permissions` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES
(1, 'view_dashboard', 'Permission to view the admin dashboard', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(2, 'access_admin_panel', 'Permission to access the administration panel', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(3, 'manage_users', 'Permission to manage users (create, update, delete)', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(4, 'create_user', 'Permission to create new users', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(5, 'edit_user', 'Permission to edit existing users', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(6, 'delete_user', 'Permission to delete users', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(7, 'view_user_list', 'Permission to view the list of users', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(8, 'view_user_profile', 'Permission to view individual user profiles', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(9, 'edit_user_profile', 'Permission to edit user profiles', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(10, 'deactivate_user', 'Permission to deactivate a user account', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(11, 'activate_user', 'Permission to reactivate a deactivated user account', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(12, 'reset_user_password', 'Permission to reset user passwords', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(13, 'manage_roles', 'Permission to manage roles (create, edit, delete)', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(14, 'create_role', 'Permission to create a new role', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(15, 'edit_role', 'Permission to edit an existing role', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(16, 'delete_role', 'Permission to delete a role', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(17, 'view_roles', 'Permission to view the list of roles', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(18, 'assign_role', 'Permission to assign roles to users', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(19, 'edit_role_permissions', 'Permission to edit permissions assigned to roles', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(20, 'manage_content', 'Permission to manage all types of content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(21, 'create_content', 'Permission to create new content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(22, 'edit_content', 'Permission to edit existing content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(23, 'delete_content', 'Permission to delete content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(24, 'publish_content', 'Permission to publish content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(25, 'unpublish_content', 'Permission to unpublish content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(26, 'view_content_list', 'Permission to view all content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(27, 'archive_content', 'Permission to archive old content', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(28, 'upload_files', 'Permission to upload files and media', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(29, 'delete_files', 'Permission to delete uploaded files', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(30, 'view_files', 'Permission to view and access uploaded files', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(31, 'manage_file_storage', 'Permission to manage file storage settings', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(32, 'manage_security_settings', 'Permission to manage security settings', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(33, 'view_security_logs', 'Permission to view security and audit logs', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(34, 'access_sensitive_data', 'Permission to access sensitive or personally identifiable information (PII)', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(35, 'manage_password_policy', 'Permission to configure and enforce password policies', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(36, 'view_login_activity', 'Permission to view login activities of users', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(37, 'view_failed_login_attempts', 'Permission to view failed login attempts for the system', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(38, 'manage_system_settings', 'Permission to manage system-wide settings', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(39, 'edit_system_settings', 'Permission to edit system configuration (e.g., database, APIs)', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(40, 'view_system_settings', 'Permission to view current system settings', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(41, 'manage_api_keys', 'Permission to manage API keys', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(42, 'view_system_logs', 'Permission to view system activity and error logs', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(43, 'configure_email_settings', 'Permission to configure the email server settings', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(44, 'view_reports', 'Permission to view system reports', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(45, 'generate_reports', 'Permission to generate and download reports', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(46, 'export_data', 'Permission to export data in various formats', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(47, 'view_analytics_dashboard', 'Permission to view the analytics dashboard', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(48, 'manage_billing', 'Permission to manage billing, payments, and subscriptions', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(49, 'view_billing_history', 'Permission to view past transactions and billing history', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(50, 'issue_refunds', 'Permission to issue refunds to users', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(51, 'view_invoice_list', 'Permission to view all invoices', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(52, 'view_audit_logs', 'Permission to view audit logs for system actions', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(53, 'perform_compliance_checks', 'Permission to perform and manage compliance checks', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(54, 'view_data_privacy_logs', 'Permission to view logs related to GDPR and data privacy activities', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(55, 'manage_notifications', 'Permission to configure and send notifications (email, SMS, etc.)', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(56, 'view_notification_history', 'Permission to view the notification history sent by the system', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(57, 'send_system_alerts', 'Permission to send system-wide alerts', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(58, 'manage_backups', 'Permission to configure and manage system backups', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(59, 'perform_backup', 'Permission to manually initiate a backup of the system', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(60, 'restore_backup', 'Permission to restore a backup', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(61, 'manage_tasks', 'Permission to manage tasks and workflow configurations', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(62, 'assign_tasks', 'Permission to assign tasks to users or teams', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(63, 'view_task_list', 'Permission to view the list of tasks', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(64, 'mark_task_complete', 'Permission to mark a task as completed', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(65, 'view_api_logs', 'Permission to view API usage logs', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(66, 'manage_integrations', 'Permission to manage system integrations (third-party tools, webhooks, etc.)', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(67, 'manage_api_access', '', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(68, 'manage_teams', 'Permission to create, edit, and delete teams', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(69, 'assign_team_roles', 'Permission to assign team roles and permissions', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(70, 'view_team_members', 'Permission to view team member information', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(71, 'manage_projects', 'Permission to create and manage projects', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(72, 'assign_project_tasks', 'Permission to assign tasks within projects', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(73, 'impersonate_user', 'Permission to impersonate other users for troubleshooting', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(74, 'access_admin_as_other_role', 'Permission to access the admin panel as a different role', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(75, 'shutdown_system', 'Permission to shut down the system in case of emergencies', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(76, 'manage_database', 'Permission to manage (backup, restore, optimize) the database', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(77, 'view_dashboard', 'Permission to view the admin dashboard', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(78, 'access_admin_panel', 'Permission to access the administration panel', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(79, 'view_own_grades', 'Permission for students to view their own grades', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(80, 'view_own_assignments', 'Permission for students to view their own assignments', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(81, 'submit_assignments', 'Permission for students to submit assignments', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(82, 'view_course_materials', 'Permission for students to view course materials', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(83, 'view_timetable', 'Permission for students to view their own timetable or schedule', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(84, 'view_own_attendance', 'Permission for students to view their attendance records', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(85, 'manage_students', 'Permission to manage (add, edit, remove) students in their class', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(86, 'grade_assignments', 'Permission to grade student assignments', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(87, 'view_all_students', 'Permission to view all students in their class', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(88, 'view_class_attendance', 'Permission to view class attendance', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(89, 'manage_course_materials', 'Permission to upload and manage course materials', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(90, 'create_assignments', 'Permission to create new assignments', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(91, 'edit_assignments', 'Permission to edit existing assignments', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(92, 'view_teacher_reports', 'Permission to view reports related to the teachers class or subjects', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(93, 'view_class_timetable', 'Permission to view the class timetable', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(94, 'view_child_grades', 'Permission for parents to view their childs grades', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(95, 'view_child_attendance', 'Permission for parents to view their childs attendance records', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(96, 'view_child_assignments', 'Permission for parents to view assignments assigned to their child', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(97, 'communicate_with_teachers', 'Permission for parents to communicate with teachers', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(98, 'view_child_timetable', 'Permission for parents to view their childs timetable', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(99, 'view_school_announcements', 'Permission for parents to view school announcements or notices', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(100, 'manage_school_events', 'Permission to manage school events and announcements', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(101, 'manage_class_schedules', 'Permission to manage class schedules', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(102, 'manage_student_enrollment', 'Permission to manage student enrollment and records', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(103, 'view_all_reports', 'Permission to view all school-wide reports', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(104, 'manage_facilities', 'Permission to manage school facilities (library, labs, etc.)', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(105, 'view_school_timetable', 'Permission to view the overall school timetable', '2024-09-21 15:58:00', '2024-09-21 15:58:00'),
(106, 'parent_dashboard', 'Permission to view the parent dashboard', '2024-09-21 17:23:01', '2024-09-21 17:23:01'),
(107, 'teacher_dashboard', 'Permission to view teacher dashboard', '2024-09-21 15:57:22', '2024-09-21 15:57:22'),
(108, 'invoice_pdf', 'Permission to view invoice PDFs', '2025-08-27 16:10:57', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `preferences`
--

CREATE TABLE `preferences` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `receive_email_notifications` tinyint(1) DEFAULT 1,
  `receive_sms_notifications` tinyint(1) DEFAULT 0,
  `theme` varchar(50) DEFAULT 'light',
  `language` varchar(10) DEFAULT 'en',
  `timezone` varchar(50) DEFAULT 'UTC',
  `receive_push_notifications` tinyint(1) DEFAULT 0,
  `daily_summary_email` tinyint(1) DEFAULT 1,
  `privacy_mode` tinyint(1) DEFAULT 0,
  `marketing_emails` tinyint(1) DEFAULT 1,
  `account_activity_alerts` tinyint(1) DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `school_year` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `project`
--

CREATE TABLE `project` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) NOT NULL,
  `project_index` tinyint(4) DEFAULT NULL,
  `score` float DEFAULT NULL,
  `comment` text DEFAULT NULL,
  `semester` varchar(25) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `qcmquestions`
--

CREATE TABLE `qcmquestions` (
  `id` int(11) NOT NULL,
  `qcm_question_id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  `answer_a` text NOT NULL,
  `answer_b` text NOT NULL,
  `answer_c` text DEFAULT NULL,
  `answer_d` text DEFAULT NULL,
  `answer_e` text DEFAULT NULL,
  `correct_answer` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `questions`
--

CREATE TABLE `questions` (
  `id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  `chapter_id` int(11) NOT NULL,
  `question_type_id` int(11) NOT NULL,
  `question_text` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `questionstruefalse`
--

CREATE TABLE `questionstruefalse` (
  `id` int(11) NOT NULL,
  `tf_question_id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  `correct_answer` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `questiontypes`
--

CREATE TABLE `questiontypes` (
  `id` int(11) NOT NULL,
  `question_type_id` int(11) NOT NULL,
  `question_type_name` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `quiz`
--

CREATE TABLE `quiz` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) NOT NULL,
  `teacher_id` int(11) NOT NULL,
  `quiz_index` tinyint(11) NOT NULL,
  `score` float DEFAULT NULL,
  `comment` text DEFAULT NULL,
  `semester` varchar(25) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `refunds`
--

CREATE TABLE `refunds` (
  `id` int(11) UNSIGNED NOT NULL,
  `parent_id` int(11) UNSIGNED NOT NULL,
  `school_year` varchar(20) NOT NULL,
  `invoice_id` int(11) UNSIGNED DEFAULT NULL,
  `refund_amount` decimal(10,2) NOT NULL,
  `requested_at` datetime NOT NULL DEFAULT current_timestamp(),
  `approved_at` datetime DEFAULT NULL,
  `refunded_at` datetime DEFAULT NULL,
  `status` enum('Pending','Partial','Approved','Rejected','Paid') NOT NULL DEFAULT 'Pending',
  `reason` varchar(255) DEFAULT NULL,
  `refund_paid_amount` decimal(10,2) NOT NULL,
  `request` varchar(25) DEFAULT NULL,
  `note` text DEFAULT NULL,
  `approved_by` int(11) UNSIGNED DEFAULT NULL,
  `updated_by` int(11) UNSIGNED DEFAULT NULL,
  `refund_method` enum('Check','Online','Cash') DEFAULT NULL,
  `check_nbr` varchar(100) DEFAULT NULL,
  `check_file` varchar(255) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `reimbursements`
--

CREATE TABLE `reimbursements` (
  `id` int(11) UNSIGNED NOT NULL,
  `expense_id` int(11) UNSIGNED DEFAULT NULL,
  `amount` decimal(10,2) NOT NULL,
  `reimbursed_to` int(11) UNSIGNED NOT NULL,
  `approved_by` int(11) UNSIGNED DEFAULT NULL,
  `receipt_path` varchar(255) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `status` enum('Pending','Approved','Rejected','Paid') DEFAULT 'Pending',
  `added_by` int(11) UNSIGNED NOT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL,
  `check_number` varchar(100) DEFAULT NULL,
  `reimbursement_method` enum('Cash','Check') DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `roles`
--

CREATE TABLE `roles` (
  `id` int(11) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `roles`
--

INSERT INTO `roles` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES
(1, 'administrator', 'Oversees all administrative functions of the school', '2024-07-10 22:11:23', '2024-08-02 03:30:42'),
(2, 'principal', 'Responsible for overall school management and operations', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(3, 'vice_principal', 'Assists the principal in administrative duties', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(4, 'teacher', 'Delivers classroom instruction', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(5, 'teacher_assistant', 'Supports the lead teacher in instructional duties', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(6, 'student', 'Attends classes and participates in school activities', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(7, 'parent', 'Engages with teachers and school administration about their child', '2024-07-10 22:11:23', '2024-08-02 22:26:11'),
(8, 'admin', 'Handles administrative tasks and supports school operations', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(9, 'head of department (communication)', 'Oversees the Communication department', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(10, 'head of department (information technology)', 'Oversees the Information Tehcnology department', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(11, 'head of department (education)', 'Oversees the Education department', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(12, 'head of department (finance)', 'Oversees the Financial department', '2024-07-10 22:11:23', '2024-08-02 03:36:31'),
(13, 'guest', 'Oversees all guest functions of the school', '2024-07-12 16:05:03', '2024-08-02 03:36:31');

-- --------------------------------------------------------

--
-- Table structure for table `role_permissions`
--

CREATE TABLE `role_permissions` (
  `id` int(11) UNSIGNED NOT NULL,
  `role_id` int(11) NOT NULL,
  `permission_id` int(11) NOT NULL,
  `can_create` tinyint(1) DEFAULT 0,
  `can_read` tinyint(1) DEFAULT 0,
  `can_update` tinyint(1) DEFAULT 0,
  `can_delete` tinyint(1) DEFAULT 0,
  `can_manage` tinyint(1) DEFAULT 0,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `role_permissions`
--

INSERT INTO `role_permissions` (`id`, `role_id`, `permission_id`, `can_create`, `can_read`, `can_update`, `can_delete`, `can_manage`, `created_at`, `updated_at`) VALUES
(1, 1, 1, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-07-19 17:27:01'),
(2, 1, 2, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(3, 1, 3, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(4, 1, 4, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(5, 1, 5, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(6, 1, 6, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(7, 1, 7, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(8, 1, 8, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(9, 1, 9, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(10, 1, 10, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(11, 1, 11, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(12, 1, 12, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(13, 1, 13, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(14, 1, 14, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(15, 1, 15, 1, 1, 1, 1, 0, '2024-07-19 17:27:01', '2024-08-11 04:22:34'),
(16, 2, 1, 1, 1, 1, 1, 0, '2024-08-31 04:34:16', '2024-08-31 05:01:31'),
(17, 2, 3, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(18, 2, 4, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(19, 2, 6, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(20, 2, 9, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(21, 2, 2, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(22, 2, 7, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(23, 2, 8, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(24, 2, 10, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(25, 2, 11, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(26, 2, 12, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(27, 2, 13, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(28, 2, 14, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(29, 2, 15, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(31, 7, 106, 1, 1, 1, 1, 0, '2024-09-21 16:23:42', '2024-09-21 16:23:42'),
(35, 14, 106, 0, 1, 0, 0, 0, '2024-09-28 05:20:31', '2024-09-28 05:20:31'),
(32, 5, 1, 1, 1, 1, 1, 0, '2024-08-31 05:02:50', '2024-08-31 05:02:50'),
(33, 6, 5, 1, 1, 1, 1, 0, '2024-08-31 05:03:02', '2024-08-31 05:03:02'),
(38, 4, 107, 1, 1, 1, 1, 0, '2024-09-23 15:20:04', '2024-09-23 15:20:04'),
(36, 8, 6, 1, 1, 1, 1, 0, '2024-08-31 15:36:52', '2024-08-31 15:36:52'),
(37, 11, 3, 1, 1, 1, 1, 0, '2024-09-04 14:24:19', '2024-09-04 14:24:19'),
(30, 2, 5, 1, 1, 1, 1, 0, '2024-08-31 05:01:31', '2024-08-31 05:01:31'),
(34, 7, 108, 0, 1, 0, 0, 0, '2024-09-21 16:23:42', '2024-09-21 16:23:42'),
(39, 1, 108, 1, 1, 1, 1, 1, '2024-07-19 17:27:01', '2024-07-19 17:27:01');

-- --------------------------------------------------------

--
-- Table structure for table `scan_log`
--

CREATE TABLE `scan_log` (
  `id` int(11) UNSIGNED NOT NULL,
  `user_id` int(11) NOT NULL,
  `card_id` varchar(255) DEFAULT NULL,
  `scan_time` datetime DEFAULT current_timestamp(),
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `score_comments`
--

CREATE TABLE `score_comments` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) UNSIGNED NOT NULL,
  `subject_id` int(11) NOT NULL,
  `score_type` varchar(50) NOT NULL,
  `semester` varchar(20) NOT NULL,
  `school_year` varchar(20) NOT NULL,
  `comment` text NOT NULL,
  `commented_by` int(11) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `sections`
--

CREATE TABLE `sections` (
  `id` int(11) UNSIGNED NOT NULL,
  `section_name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `updated_by` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `sections`
--

INSERT INTO `sections` (`id`, `section_name`, `description`, `updated_at`, `updated_by`) VALUES
(1, '', 'No-Section', '2024-08-16 01:06:30', 1),
(2, 'A', 'Section A', '2024-08-16 01:06:30', 1),
(3, 'B', 'Section B', '2024-08-16 01:06:30', 1),
(4, 'C', 'Section C', '2024-08-16 01:06:30', 1),
(5, 'D', 'Section D', '2024-08-16 01:06:30', 1),
(6, 'E', 'Section E', '2024-08-16 01:06:30', 1);

-- --------------------------------------------------------

--
-- Table structure for table `semester_scores`
--

CREATE TABLE `semester_scores` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `school_id` char(36) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) DEFAULT NULL,
  `homework_avg` float DEFAULT NULL,
  `quiz_avg` float DEFAULT NULL,
  `project_avg` float DEFAULT NULL,
  `midterm_exam_score` float DEFAULT NULL,
  `final_exam_score` float DEFAULT NULL,
  `attendance_score` float DEFAULT NULL,
  `ptap_score` decimal(5,2) DEFAULT NULL,
  `test_avg` float DEFAULT NULL,
  `semester_score` float DEFAULT NULL,
  `semester` varchar(20) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `settings`
--

CREATE TABLE `settings` (
  `id` int(11) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `timezone` varchar(255) NOT NULL,
  `updated_by` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `shortanswerquestions`
--

CREATE TABLE `shortanswerquestions` (
  `id` int(11) NOT NULL,
  `sa_question_id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  `correct_answer` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `staff`
--

CREATE TABLE `staff` (
  `id` int(10) UNSIGNED NOT NULL,
  `firstname` varchar(100) NOT NULL,
  `lastname` varchar(100) NOT NULL,
  `email` varchar(150) NOT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `role_name` varchar(100) NOT NULL,
  `school_year` varchar(9) NOT NULL,
  `active_role` varchar(100) DEFAULT 'Active',
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `user_id` int(11) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `students`
--

CREATE TABLE `students` (
  `id` int(11) UNSIGNED NOT NULL,
  `school_id` char(100) NOT NULL,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `dob` date DEFAULT NULL,
  `age` int(11) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `registration_grade` varchar(50) DEFAULT NULL,
  `photo_consent` tinyint(1) NOT NULL,
  `parent_id` int(11) NOT NULL,
  `registration_date` datetime DEFAULT NULL,
  `tuition_paid` tinyint(1) NOT NULL DEFAULT 0,
  `year_of_registration` varchar(25) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `rfid_tag` varchar(100) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL,
  `is_new` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 = new student, 0 = returning student'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `student_allergies`
--

CREATE TABLE `student_allergies` (
  `id` int(11) NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `allergy` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `student_class`
--

CREATE TABLE `student_class` (
  `id` int(11) UNSIGNED NOT NULL,
  `student_id` int(11) NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(25) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `updated_by` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `student_medical_conditions`
--

CREATE TABLE `student_medical_conditions` (
  `id` int(11) NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `condition_name` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `support_requests`
--

CREATE TABLE `support_requests` (
  `id` int(11) UNSIGNED NOT NULL,
  `user_id` int(11) NOT NULL,
  `subject` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `status` varchar(25) NOT NULL DEFAULT 'open',
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `teacher_class`
--

CREATE TABLE `teacher_class` (
  `id` int(11) UNSIGNED NOT NULL,
  `class_section_id` int(11) DEFAULT NULL,
  `teacher_id` int(11) DEFAULT NULL,
  `first_ta_id` int(11) DEFAULT NULL,
  `second_ta_id` int(11) DEFAULT NULL,
  `semester` varchar(25) NOT NULL,
  `school_year` varchar(25) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `updated_by` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `id` int(11) UNSIGNED NOT NULL,
  `school_id` int(11) UNSIGNED DEFAULT NULL,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `gender` enum('Male','Female') DEFAULT NULL,
  `cellphone` varchar(25) NOT NULL,
  `email` varchar(255) NOT NULL,
  `address_street` varchar(255) NOT NULL,
  `apt` varchar(25) DEFAULT NULL,
  `city` varchar(255) NOT NULL,
  `state` varchar(25) NOT NULL,
  `zip` varchar(25) NOT NULL,
  `accept_school_policy` tinyint(1) NOT NULL,
  `is_verified` tinyint(1) NOT NULL DEFAULT 0,
  `status` varchar(10) NOT NULL DEFAULT 'Inactive',
  `is_suspended` tinyint(1) NOT NULL DEFAULT 0,
  `failed_attempts` int(11) DEFAULT 0,
  `password` varchar(255) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `token` varchar(255) DEFAULT NULL,
  `account_id` varchar(255) DEFAULT NULL,
  `user_type` enum('primary','secondary','tertiary') DEFAULT 'primary',
  `semester` varchar(255) NOT NULL,
  `school_year` varchar(9) DEFAULT NULL,
  `rfid_tag` varchar(100) DEFAULT NULL,
  `last_failed_at` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `school_id`, `firstname`, `lastname`, `gender`, `cellphone`, `email`, `address_street`, `apt`, `city`, `state`, `zip`, `accept_school_policy`, `is_verified`, `status`, `is_suspended`, `failed_attempts`, `password`, `created_at`, `updated_at`, `token`, `account_id`, `user_type`, `semester`, `school_year`, `rfid_tag`, `last_failed_at`) VALUES
(1, 2500001, 'AdminFirstName', 'AdminLastName', 'Male', '0001234569', 'administrator@gmail.com', '2 bfbg', '', 'lowell', 'ma', '0000', 1, 1, 'Active', 0, 0, 'sha256$100000$c754c0c1d5926b6961c8d1eb3e5453b0$b1da71cea3e52b1669f15434136242e3a73019174a503d5fe1744ea57c1a0d4f65b566c198fd9389b4c6f6b702597644e2509f921df36083b058bed92493c583', '2024-08-02 00:24:41', '2025-08-31 17:28:44', NULL, 'ACC00000001', 'primary', '', '2024-2025', '000000001', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `user_notifications`
--

CREATE TABLE `user_notifications` (
  `id` int(11) UNSIGNED NOT NULL,
  `notification_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `is_read` tinyint(1) DEFAULT 0,
  `delivered` tinyint(1) DEFAULT 0,
  `delivered_at` datetime DEFAULT NULL,
  `school_year` varchar(20) DEFAULT NULL,
  `semester` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `user_preferences`
--

CREATE TABLE `user_preferences` (
  `id` int(11) UNSIGNED NOT NULL,
  `user_id` int(11) NOT NULL,
  `notification_email` tinyint(1) DEFAULT 1,
  `notification_sms` tinyint(1) DEFAULT 1,
  `theme` varchar(50) DEFAULT 'light',
  `language` varchar(50) DEFAULT 'en',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `user_roles`
--

CREATE TABLE `user_roles` (
  `id` int(11) UNSIGNED NOT NULL,
  `user_id` int(11) UNSIGNED NOT NULL,
  `role_id` int(11) UNSIGNED NOT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `deleted_at` datetime DEFAULT NULL,
  `updated_by` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `user_roles`
--

INSERT INTO `user_roles` (`id`, `user_id`, `role_id`, `created_at`, `updated_at`, `deleted_at`, `updated_by`) VALUES
(1, 1, 1, '2025-09-01 01:36:34', '2025-09-01 01:36:34', NULL, NULL);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `attendance_data`
--
ALTER TABLE `attendance_data`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `attendance_record`
--
ALTER TABLE `attendance_record`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `attendance_tracking`
--
ALTER TABLE `attendance_tracking`
  ADD PRIMARY KEY (`id`),
  ADD KEY `student_id` (`student_id`);

--
-- Indexes for table `authorized_users`
--
ALTER TABLE `authorized_users`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `calendar_events`
--
ALTER TABLE `calendar_events`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `chapters`
--
ALTER TABLE `chapters`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `classes`
--
ALTER TABLE `classes`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `classSection`
--
ALTER TABLE `classSection`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `class_preparation_log`
--
ALTER TABLE `class_preparation_log`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `configuration`
--
ALTER TABLE `configuration`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `contactus`
--
ALTER TABLE `contactus`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `current_flag`
--
ALTER TABLE `current_flag`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `discount_usages`
--
ALTER TABLE `discount_usages`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `discount_vouchers`
--
ALTER TABLE `discount_vouchers`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `emergency_contacts`
--
ALTER TABLE `emergency_contacts`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `enrollments`
--
ALTER TABLE `enrollments`
  ADD PRIMARY KEY (`id`),
  ADD KEY `student_id` (`student_id`),
  ADD KEY `class_section_id` (`class_section_id`),
  ADD KEY `parent_id` (`parent_id`);

--
-- Indexes for table `events`
--
ALTER TABLE `events`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `event_charges`
--
ALTER TABLE `event_charges`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `examquestiondistribution`
--
ALTER TABLE `examquestiondistribution`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `examquestions`
--
ALTER TABLE `examquestions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `exams`
--
ALTER TABLE `exams`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `expenses`
--
ALTER TABLE `expenses`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `final_exam`
--
ALTER TABLE `final_exam`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `final_score`
--
ALTER TABLE `final_score`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `flag`
--
ALTER TABLE `flag`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `homework`
--
ALTER TABLE `homework`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `invoices`
--
ALTER TABLE `invoices`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `invoice_event`
--
ALTER TABLE `invoice_event`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `invoice_students_list`
--
ALTER TABLE `invoice_students_list`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `ip_attempts`
--
ALTER TABLE `ip_attempts`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `login_activity`
--
ALTER TABLE `login_activity`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `longanswerquestions`
--
ALTER TABLE `longanswerquestions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `manual_payments`
--
ALTER TABLE `manual_payments`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `messages`
--
ALTER TABLE `messages`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `midterm_exam`
--
ALTER TABLE `midterm_exam`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `migrations`
--
ALTER TABLE `migrations`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `notifications`
--
ALTER TABLE `notifications`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `notification_recipients`
--
ALTER TABLE `notification_recipients`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `parents`
--
ALTER TABLE `parents`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `participation`
--
ALTER TABLE `participation`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `participation_score`
--
ALTER TABLE `participation_score`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_student_id` (`student_id`),
  ADD KEY `idx_class_section_id` (`class_section_id`),
  ADD KEY `idx_teacher_id` (`teacher_id`);

--
-- Indexes for table `password_resets`
--
ALTER TABLE `password_resets`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `password_reset_requests`
--
ALTER TABLE `password_reset_requests`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `payments`
--
ALTER TABLE `payments`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `payment_error`
--
ALTER TABLE `payment_error`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `payment_transactions`
--
ALTER TABLE `payment_transactions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `paypal_payments`
--
ALTER TABLE `paypal_payments`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `paypal_transactions`
--
ALTER TABLE `paypal_transactions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `permissions`
--
ALTER TABLE `permissions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `preferences`
--
ALTER TABLE `preferences`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `project`
--
ALTER TABLE `project`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `qcmquestions`
--
ALTER TABLE `qcmquestions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `questions`
--
ALTER TABLE `questions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `questionstruefalse`
--
ALTER TABLE `questionstruefalse`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `questiontypes`
--
ALTER TABLE `questiontypes`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `quiz`
--
ALTER TABLE `quiz`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `refunds`
--
ALTER TABLE `refunds`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `reimbursements`
--
ALTER TABLE `reimbursements`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `roles`
--
ALTER TABLE `roles`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `role_permissions`
--
ALTER TABLE `role_permissions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `scan_log`
--
ALTER TABLE `scan_log`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `score_comments`
--
ALTER TABLE `score_comments`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `sections`
--
ALTER TABLE `sections`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `semester_scores`
--
ALTER TABLE `semester_scores`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_student_id` (`student_id`),
  ADD KEY `idx_semester_school_year` (`semester`,`school_year`);

--
-- Indexes for table `settings`
--
ALTER TABLE `settings`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `shortanswerquestions`
--
ALTER TABLE `shortanswerquestions`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `staff`
--
ALTER TABLE `staff`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`),
  ADD UNIQUE KEY `user_id` (`user_id`);

--
-- Indexes for table `students`
--
ALTER TABLE `students`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `student_allergies`
--
ALTER TABLE `student_allergies`
  ADD PRIMARY KEY (`id`),
  ADD KEY `student_id` (`student_id`);

--
-- Indexes for table `student_class`
--
ALTER TABLE `student_class`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `student_medical_conditions`
--
ALTER TABLE `student_medical_conditions`
  ADD PRIMARY KEY (`id`),
  ADD KEY `student_id` (`student_id`);

--
-- Indexes for table `support_requests`
--
ALTER TABLE `support_requests`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `teacher_class`
--
ALTER TABLE `teacher_class`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_teacher_assignment` (`teacher_id`,`class_section_id`,`semester`,`school_year`),
  ADD UNIQUE KEY `unique_first_ta_assignment` (`first_ta_id`,`class_section_id`,`semester`,`school_year`),
  ADD UNIQUE KEY `unique_second_ta_assignment` (`second_ta_id`,`class_section_id`,`semester`,`school_year`);

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `user_notifications`
--
ALTER TABLE `user_notifications`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `user_preferences`
--
ALTER TABLE `user_preferences`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `user_roles`
--
ALTER TABLE `user_roles`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `attendance_data`
--
ALTER TABLE `attendance_data`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `attendance_record`
--
ALTER TABLE `attendance_record`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `attendance_tracking`
--
ALTER TABLE `attendance_tracking`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `authorized_users`
--
ALTER TABLE `authorized_users`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `calendar_events`
--
ALTER TABLE `calendar_events`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;

--
-- AUTO_INCREMENT for table `chapters`
--
ALTER TABLE `chapters`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `classes`
--
ALTER TABLE `classes`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;

--
-- AUTO_INCREMENT for table `classSection`
--
ALTER TABLE `classSection`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=50;

--
-- AUTO_INCREMENT for table `class_preparation_log`
--
ALTER TABLE `class_preparation_log`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `configuration`
--
ALTER TABLE `configuration`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=44;

--
-- AUTO_INCREMENT for table `contactus`
--
ALTER TABLE `contactus`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `current_flag`
--
ALTER TABLE `current_flag`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `discount_usages`
--
ALTER TABLE `discount_usages`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `discount_vouchers`
--
ALTER TABLE `discount_vouchers`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `emergency_contacts`
--
ALTER TABLE `emergency_contacts`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `enrollments`
--
ALTER TABLE `enrollments`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `events`
--
ALTER TABLE `events`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `event_charges`
--
ALTER TABLE `event_charges`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `examquestiondistribution`
--
ALTER TABLE `examquestiondistribution`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `examquestions`
--
ALTER TABLE `examquestions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `exams`
--
ALTER TABLE `exams`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `expenses`
--
ALTER TABLE `expenses`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `final_exam`
--
ALTER TABLE `final_exam`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `final_score`
--
ALTER TABLE `final_score`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `flag`
--
ALTER TABLE `flag`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `homework`
--
ALTER TABLE `homework`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `invoices`
--
ALTER TABLE `invoices`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `invoice_event`
--
ALTER TABLE `invoice_event`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `invoice_students_list`
--
ALTER TABLE `invoice_students_list`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `ip_attempts`
--
ALTER TABLE `ip_attempts`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `login_activity`
--
ALTER TABLE `login_activity`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `longanswerquestions`
--
ALTER TABLE `longanswerquestions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `manual_payments`
--
ALTER TABLE `manual_payments`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `messages`
--
ALTER TABLE `messages`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `midterm_exam`
--
ALTER TABLE `midterm_exam`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `migrations`
--
ALTER TABLE `migrations`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `notifications`
--
ALTER TABLE `notifications`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `notification_recipients`
--
ALTER TABLE `notification_recipients`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `parents`
--
ALTER TABLE `parents`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `participation`
--
ALTER TABLE `participation`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `password_resets`
--
ALTER TABLE `password_resets`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `password_reset_requests`
--
ALTER TABLE `password_reset_requests`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `payments`
--
ALTER TABLE `payments`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `payment_error`
--
ALTER TABLE `payment_error`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `payment_transactions`
--
ALTER TABLE `payment_transactions`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `paypal_payments`
--
ALTER TABLE `paypal_payments`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `paypal_transactions`
--
ALTER TABLE `paypal_transactions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `permissions`
--
ALTER TABLE `permissions`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=109;

--
-- AUTO_INCREMENT for table `preferences`
--
ALTER TABLE `preferences`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `project`
--
ALTER TABLE `project`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `qcmquestions`
--
ALTER TABLE `qcmquestions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `questions`
--
ALTER TABLE `questions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `questionstruefalse`
--
ALTER TABLE `questionstruefalse`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `questiontypes`
--
ALTER TABLE `questiontypes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `quiz`
--
ALTER TABLE `quiz`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `refunds`
--
ALTER TABLE `refunds`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `reimbursements`
--
ALTER TABLE `reimbursements`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `roles`
--
ALTER TABLE `roles`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;

--
-- AUTO_INCREMENT for table `role_permissions`
--
ALTER TABLE `role_permissions`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=40;

--
-- AUTO_INCREMENT for table `scan_log`
--
ALTER TABLE `scan_log`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `score_comments`
--
ALTER TABLE `score_comments`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `sections`
--
ALTER TABLE `sections`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT for table `semester_scores`
--
ALTER TABLE `semester_scores`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `settings`
--
ALTER TABLE `settings`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `shortanswerquestions`
--
ALTER TABLE `shortanswerquestions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `staff`
--
ALTER TABLE `staff`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `students`
--
ALTER TABLE `students`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `student_allergies`
--
ALTER TABLE `student_allergies`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `student_class`
--
ALTER TABLE `student_class`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `student_medical_conditions`
--
ALTER TABLE `student_medical_conditions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `support_requests`
--
ALTER TABLE `support_requests`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `teacher_class`
--
ALTER TABLE `teacher_class`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `user_notifications`
--
ALTER TABLE `user_notifications`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `user_preferences`
--
ALTER TABLE `user_preferences`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `user_roles`
--
ALTER TABLE `user_roles`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `attendance_tracking`
--
ALTER TABLE `attendance_tracking`
  ADD CONSTRAINT `attendance_tracking_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `student_allergies`
--
ALTER TABLE `student_allergies`
  ADD CONSTRAINT `student_allergies_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `student_medical_conditions`
--
ALTER TABLE `student_medical_conditions`
  ADD CONSTRAINT `student_medical_conditions_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
