-- phpMyAdmin SQL Dump
-- version 4.9.1
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Nov 29, 2025 at 06:33 AM
-- Server version: 8.0.17
-- PHP Version: 7.3.10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
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: `university_results`
--

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

--
-- Table structure for table `activity_logs`
--

CREATE TABLE `activity_logs` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `username` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `user_role` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `action` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `entity_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `entity_id` int(11) DEFAULT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `activity_logs`
--

INSERT INTO `activity_logs` (`id`, `user_id`, `username`, `user_role`, `action`, `entity_type`, `entity_id`, `description`, `ip_address`, `user_agent`, `created_at`) VALUES
(1, 12, 'admin', 'admin', 'logout', NULL, NULL, 'تسجيل خروج المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-26 21:23:05'),
(2, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-26 21:23:27'),
(3, 12, 'admin', 'admin', 'logout', NULL, NULL, 'تسجيل خروج المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-26 21:23:41'),
(4, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-26 21:23:58'),
(5, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-27 18:12:59'),
(6, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-28 01:55:39'),
(7, 12, 'admin', 'admin', 'logout', NULL, NULL, 'تسجيل خروج المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-28 03:22:21'),
(8, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-28 03:22:37'),
(9, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-29 02:15:56'),
(10, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-29 02:36:54'),
(11, 12, 'admin', 'admin', 'login', NULL, NULL, 'تسجيل دخول المستخدم: admin', '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0', '2025-11-29 04:42:51');

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

--
-- Table structure for table `calibrated_grades`
--

CREATE TABLE `calibrated_grades` (
  `id` int(11) NOT NULL,
  `grade_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL,
  `semester_id` int(11) NOT NULL,
  `original_marks` decimal(5,2) NOT NULL,
  `original_letter_grade` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `original_points` decimal(3,2) DEFAULT NULL,
  `calibrated_marks` decimal(5,2) NOT NULL,
  `calibrated_letter_grade` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `calibrated_points` decimal(3,2) DEFAULT NULL,
  `calibration_target_mean` decimal(5,2) NOT NULL,
  `calibration_target_std` decimal(5,2) NOT NULL,
  `calibrated_by` int(11) NOT NULL,
  `calibrated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `certificates`
--

CREATE TABLE `certificates` (
  `id` int(11) NOT NULL,
  `certificate_request_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `certificate_type` enum('detailed','university','transcript','enrollment','graduation') COLLATE utf8mb4_unicode_ci NOT NULL,
  `certificate_number` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `issue_date` date NOT NULL,
  `pdf_path` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `issued_by` int(11) NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `certificate_requests`
--

CREATE TABLE `certificate_requests` (
  `id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `certificate_type` enum('detailed','university','transcript','enrollment','graduation') COLLATE utf8mb4_unicode_ci NOT NULL,
  `request_date` date NOT NULL,
  `status` enum('pending','approved','rejected','issued') COLLATE utf8mb4_unicode_ci DEFAULT 'pending',
  `rejection_reason` text COLLATE utf8mb4_unicode_ci,
  `issued_date` date DEFAULT NULL,
  `issued_by` int(11) DEFAULT NULL,
  `certificate_number` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `notes` text COLLATE utf8mb4_unicode_ci,
  `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 `colleges`
--

CREATE TABLE `colleges` (
  `id` int(11) NOT NULL,
  `name_ar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `code` varchar(50) COLLATE utf8mb4_unicode_ci 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_unicode_ci;

--
-- Dumping data for table `colleges`
--

INSERT INTO `colleges` (`id`, `name_ar`, `name_en`, `code`, `created_at`) VALUES
(6, 'علوم الحاسوب', 'Computer Science', 'CS', '2025-11-16 05:51:32');

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

--
-- Table structure for table `courses`
--

CREATE TABLE `courses` (
  `id` int(11) NOT NULL,
  `major_id` int(11) NOT NULL,
  `semester_id` int(11) DEFAULT NULL,
  `code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `name_ar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `credit_hours` int(11) NOT NULL,
  `is_required` tinyint(1) DEFAULT '1',
  `is_alternative` tinyint(1) DEFAULT '0',
  `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;

--
-- Dumping data for table `courses`
--

INSERT INTO `courses` (`id`, `major_id`, `semester_id`, `code`, `name_ar`, `name_en`, `credit_hours`, `is_required`, `is_alternative`, `created_at`) VALUES
(3, 9, NULL, 'AI001', 'الذكاء الاصطناعي', 'artificial Intelligence', 3, 1, 0, '2025-11-17 05:57:02'),
(17, 9, NULL, 'IT001', 'تقنية المعلومات_1', 'Information Technology_1', 3, 1, 0, '2025-11-17 18:45:18'),
(18, 9, NULL, 'Math01', 'الرياضيات ', 'Mathematics', 2, 1, 0, '2025-11-17 18:47:14'),
(19, 9, NULL, 'Man01', 'الادارة_1', 'management_1', 2, 1, 0, '2025-11-17 18:48:33'),
(20, 9, NULL, 'SlA01', 'الدرسات الاسلامية', 'Slamic Language', 2, 1, 0, '2025-11-17 19:00:58'),
(21, 9, NULL, 'ENG01', 'انجليزي_1', 'English_1', 2, 1, 0, '2025-11-17 19:02:29'),
(22, 9, NULL, 'ACC01', 'المحاسبة', 'Accounting', 2, 1, 0, '2025-11-17 19:03:33'),
(23, 9, NULL, 'STAT01', 'الاحصاء', 'ٍStatistics', 2, 1, 0, '2025-11-17 19:04:41'),
(24, 9, 5, 'CS101', 'مقدمة في علوم الحاسوب', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(25, 9, 5, 'MATH101', 'رياضيات 1', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(26, 9, 5, 'ENG101', 'لغة إنجليزية 1', NULL, 2, 1, 0, '2025-11-25 06:20:27'),
(27, 9, 5, 'PHYS101', 'فيزياء عامة', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(28, 9, 6, 'CS102', 'برمجة 1', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(29, 9, 6, 'MATH102', 'رياضيات 2', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(30, 9, 6, 'ENG102', 'لغة إنجليزية 2', NULL, 2, 1, 0, '2025-11-25 06:20:27'),
(31, 9, 6, 'STAT101', 'إحصاء', NULL, 2, 1, 0, '2025-11-25 06:20:27'),
(32, 9, 7, 'CS201', 'هياكل البيانات', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(33, 9, 7, 'CS202', 'قواعد البيانات', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(34, 9, 7, 'MATH201', 'جبر خطي', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(35, 9, 7, 'CS203', 'شبكات الحاسوب', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(36, 9, 8, 'CS204', 'أنظمة التشغيل', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(37, 9, 8, 'CS205', 'هندسة البرمجيات', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(38, 9, 8, 'CS206', 'الذكاء الاصطناعي', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(39, 9, 8, 'CS207', 'أمن المعلومات', NULL, 2, 1, 0, '2025-11-25 06:20:27'),
(40, 9, 9, 'CS301', 'تطوير الويب', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(41, 9, 9, 'CS302', 'البرمجة الشيئية', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(42, 9, 9, 'CS303', 'الخوارزميات', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(43, 9, 9, 'CS304', 'الرسوميات الحاسوبية', NULL, 2, 1, 0, '2025-11-25 06:20:27'),
(44, 9, 10, 'CS305', 'إدارة المشاريع', NULL, 2, 1, 0, '2025-11-25 06:20:27'),
(45, 9, 10, 'CS306', 'التعلم الآلي', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(46, 9, 10, 'CS307', 'الحوسبة السحابية', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(47, 9, 10, 'CS308', 'تطبيقات الهاتف', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(48, 9, 11, 'CS401', 'مشروع التخرج 1', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(49, 9, 11, 'CS402', 'أخلاقيات الحاسوب', NULL, 2, 1, 0, '2025-11-25 06:20:27'),
(50, 9, 11, 'CS403', 'التدريب الميداني', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(51, 9, 11, 'CS404', 'موضوعات متقدمة', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(52, 9, 12, 'CS405', 'مشروع التخرج 2', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(53, 9, 12, 'CS406', 'إدارة نظم المعلومات', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(54, 9, 12, 'CS407', 'الأنظمة الموزعة', NULL, 3, 1, 0, '2025-11-25 06:20:27'),
(55, 9, 12, 'CS408', 'التحليل والتصميم', NULL, 2, 1, 0, '2025-11-25 06:20:27');

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

--
-- Table structure for table `cumulative_gpas`
--

CREATE TABLE `cumulative_gpas` (
  `id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `total_credit_hours` decimal(5,2) NOT NULL,
  `total_points` decimal(10,2) NOT NULL,
  `cgpa` decimal(4,2) NOT NULL,
  `calculated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `cumulative_gpas`
--

INSERT INTO `cumulative_gpas` (`id`, `student_id`, `total_credit_hours`, `total_points`, `cgpa`) VALUES
(4, 6, '88.00', '338.50', '3.85'),
(8, 7, '16.00', '49.00', '3.06'),
(16, 8, '16.00', '39.00', '2.44'),
(17, 9, '18.00', '64.00', '3.56'),
(126, 10, '88.00', '279.50', '3.18'),
(127, 11, '88.00', '299.00', '3.40'),
(128, 12, '88.00', '312.00', '3.55'),
(129, 13, '88.00', '324.00', '3.68');

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

--
-- Table structure for table `fees`
--

CREATE TABLE `fees` (
  `id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `semester_id` int(11) NOT NULL,
  `fee_type` enum('tuition','registration','other') COLLATE utf8mb4_unicode_ci NOT NULL,
  `amount` decimal(10,2) NOT NULL,
  `due_date` date DEFAULT NULL,
  `paid_amount` decimal(10,2) DEFAULT '0.00',
  `payment_date` date DEFAULT NULL,
  `payment_status` enum('pending','partial','paid') COLLATE utf8mb4_unicode_ci DEFAULT 'pending',
  `notes` text COLLATE utf8mb4_unicode_ci,
  `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 `grades`
--

CREATE TABLE `grades` (
  `id` int(11) NOT NULL,
  `student_course_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL,
  `semester_id` int(11) NOT NULL,
  `marks` varchar(4) COLLATE utf8mb4_unicode_ci NOT NULL,
  `letter_grade` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `points` decimal(3,2) DEFAULT NULL,
  `calibrated_marks` decimal(5,2) DEFAULT NULL,
  `calibrated_letter_grade` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `calibrated_points` decimal(3,2) DEFAULT NULL,
  `calibration_target_mean` decimal(5,2) DEFAULT NULL,
  `calibration_target_std` decimal(5,2) DEFAULT NULL,
  `calibrated_at` timestamp NULL DEFAULT NULL,
  `calibrated_by` int(11) DEFAULT NULL,
  `entered_by` int(11) NOT NULL,
  `entered_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;

--
-- Dumping data for table `grades`
--

INSERT INTO `grades` (`id`, `student_course_id`, `student_id`, `course_id`, `semester_id`, `marks`, `letter_grade`, `points`, `calibrated_marks`, `calibrated_letter_grade`, `calibrated_points`, `calibration_target_mean`, `calibration_target_std`, `calibrated_at`, `calibrated_by`, `entered_by`, `entered_at`) VALUES
(36, 35, 6, 24, 5, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(37, 36, 6, 25, 5, '87', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(38, 37, 6, 26, 5, '89', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(39, 38, 6, 27, 5, '91', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(40, 39, 6, 28, 6, '86', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(41, 40, 6, 29, 6, '88', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(42, 41, 6, 30, 6, '90', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(43, 42, 6, 31, 6, '92', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(44, 43, 6, 32, 7, '87', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(45, 44, 6, 33, 7, '89', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(46, 45, 6, 34, 7, '91', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(47, 46, 6, 35, 7, '93', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(48, 47, 6, 36, 8, '88', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(49, 48, 6, 37, 8, '90', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(50, 49, 6, 38, 8, '92', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(51, 50, 6, 39, 8, '94', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(52, 51, 6, 40, 9, '89', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(53, 52, 6, 41, 9, '91', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(54, 53, 6, 42, 9, '93', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(55, 54, 6, 43, 9, '95', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(56, 55, 6, 44, 10, '90', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(57, 56, 6, 45, 10, '92', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(58, 57, 6, 46, 10, '94', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(59, 58, 6, 47, 10, '95', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(60, 59, 6, 48, 11, '91', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(61, 60, 6, 49, 11, '93', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(62, 61, 6, 50, 11, '95', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(63, 62, 6, 51, 11, '66', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(64, 63, 6, 52, 12, '92', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(65, 64, 6, 53, 12, '94', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(66, 65, 6, 54, 12, '54', 'D', '1.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(67, 66, 6, 55, 12, '95', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(68, 67, 10, 24, 5, '63', 'C', '2.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(69, 68, 10, 25, 5, '65', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(70, 69, 10, 26, 5, '67', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(71, 70, 10, 27, 5, '69', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(72, 71, 10, 28, 6, '64', 'C', '2.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(73, 72, 10, 29, 6, '66', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(74, 73, 10, 30, 6, '68', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(75, 74, 10, 31, 6, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(76, 75, 10, 32, 7, '65', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(77, 76, 10, 33, 7, '67', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(78, 77, 10, 34, 7, '69', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(79, 78, 10, 35, 7, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(80, 79, 10, 36, 8, '66', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(81, 80, 10, 37, 8, '68', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(82, 81, 10, 38, 8, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(83, 82, 10, 39, 8, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(84, 83, 10, 40, 9, '67', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(85, 84, 10, 41, 9, '69', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(86, 85, 10, 42, 9, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(87, 86, 10, 43, 9, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(88, 87, 10, 44, 10, '68', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(89, 88, 10, 45, 10, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(90, 89, 10, 46, 10, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(91, 90, 10, 47, 10, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(92, 91, 10, 48, 11, '69', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(93, 92, 10, 49, 11, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(94, 93, 10, 50, 11, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(95, 94, 10, 51, 11, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(96, 95, 10, 52, 12, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(97, 96, 10, 53, 12, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(98, 97, 10, 54, 12, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(99, 98, 10, 55, 12, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(100, 99, 11, 24, 5, '66', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(101, 100, 11, 25, 5, '68', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(102, 101, 11, 26, 5, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(103, 102, 11, 27, 5, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(104, 103, 11, 28, 6, '67', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(105, 104, 11, 29, 6, '69', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(106, 105, 11, 30, 6, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(107, 106, 11, 31, 6, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(108, 107, 11, 32, 7, '68', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(109, 108, 11, 33, 7, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(110, 109, 11, 34, 7, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(111, 110, 11, 35, 7, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(112, 111, 11, 36, 8, '69', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(113, 112, 11, 37, 8, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(114, 113, 11, 38, 8, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(115, 114, 11, 39, 8, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(116, 115, 11, 40, 9, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(117, 116, 11, 41, 9, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(118, 117, 11, 42, 9, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(119, 118, 11, 43, 9, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(120, 119, 11, 44, 10, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(121, 120, 11, 45, 10, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(122, 121, 11, 46, 10, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(123, 122, 11, 47, 10, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(124, 123, 11, 48, 11, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(125, 124, 11, 49, 11, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(126, 125, 11, 50, 11, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(127, 126, 11, 51, 11, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(128, 127, 11, 52, 12, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(129, 128, 11, 53, 12, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(130, 129, 11, 54, 12, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(131, 130, 11, 55, 12, '79', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(132, 131, 12, 24, 5, '69', 'B', '3.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(133, 132, 12, 25, 5, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(134, 133, 12, 26, 5, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(135, 134, 12, 27, 5, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(136, 135, 12, 28, 6, '70', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(137, 136, 12, 29, 6, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(138, 137, 12, 30, 6, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(139, 138, 12, 31, 6, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(140, 139, 12, 32, 7, '71', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(141, 140, 12, 33, 7, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(142, 141, 12, 34, 7, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(143, 142, 12, 35, 7, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(144, 143, 12, 36, 8, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(145, 144, 12, 37, 8, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(146, 145, 12, 38, 8, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(147, 146, 12, 39, 8, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(148, 147, 12, 40, 9, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(149, 148, 12, 41, 9, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(150, 149, 12, 42, 9, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(151, 150, 12, 43, 9, '79', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(152, 151, 12, 44, 10, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(153, 152, 12, 45, 10, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(154, 153, 12, 46, 10, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(155, 154, 12, 47, 10, '80', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(156, 155, 12, 48, 11, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(157, 156, 12, 49, 11, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(158, 157, 12, 50, 11, '79', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(159, 158, 12, 51, 11, '81', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(160, 159, 12, 52, 12, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(161, 160, 12, 53, 12, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(162, 161, 12, 54, 12, '80', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(163, 162, 12, 55, 12, '82', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(164, 163, 13, 24, 5, '72', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(165, 164, 13, 25, 5, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(166, 165, 13, 26, 5, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(167, 166, 13, 27, 5, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(168, 167, 13, 28, 6, '73', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(169, 168, 13, 29, 6, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(170, 169, 13, 30, 6, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(171, 170, 13, 31, 6, '79', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(172, 171, 13, 32, 7, '74', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(173, 172, 13, 33, 7, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(174, 173, 13, 34, 7, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(175, 174, 13, 35, 7, '80', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(176, 175, 13, 36, 8, '75', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(177, 176, 13, 37, 8, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(178, 177, 13, 38, 8, '79', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(179, 178, 13, 39, 8, '81', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(180, 179, 13, 40, 9, '76', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(181, 180, 13, 41, 9, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(182, 181, 13, 42, 9, '80', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(183, 182, 13, 43, 9, '82', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(184, 183, 13, 44, 10, '77', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(185, 184, 13, 45, 10, '79', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(186, 185, 13, 46, 10, '81', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(187, 186, 13, 47, 10, '83', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(188, 187, 13, 48, 11, '78', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(189, 188, 13, 49, 11, '80', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(190, 189, 13, 50, 11, '82', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(191, 190, 13, 51, 11, '84', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(192, 191, 13, 52, 12, '79', 'B+', '3.50', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(193, 192, 13, 53, 12, '81', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(194, 193, 13, 54, 12, '83', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27'),
(195, 194, 13, 55, 12, '85', 'A', '4.00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, '2025-11-25 06:20:27');

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

--
-- Table structure for table `majors`
--

CREATE TABLE `majors` (
  `id` int(11) NOT NULL,
  `college_id` int(11) NOT NULL,
  `name_ar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `total_semesters` int(11) NOT NULL DEFAULT '8',
  `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;

--
-- Dumping data for table `majors`
--

INSERT INTO `majors` (`id`, `college_id`, `name_ar`, `name_en`, `code`, `total_semesters`, `created_at`) VALUES
(9, 6, 'تقنية المعلومات', 'Information Technology', 'IT', 8, '2025-11-16 05:52:42');

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

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

CREATE TABLE `permissions` (
  `id` int(11) NOT NULL,
  `role` enum('admin','college_admin','registrar','instructor','student') COLLATE utf8mb4_unicode_ci NOT NULL,
  `permission_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

INSERT INTO `permissions` (`id`, `role`, `permission_name`, `description`) VALUES
(1, 'admin', 'all_access', 'وصول كامل للنظام'),
(2, 'college_admin', 'manage_college', 'إدارة الكلية'),
(3, 'college_admin', 'view_reports', 'عرض التقارير'),
(4, 'registrar', 'manage_students', 'إدارة الطلاب'),
(5, 'registrar', 'manage_grades', 'إدارة الدرجات'),
(6, 'registrar', 'issue_certificates', 'إصدار الشهادات'),
(7, 'instructor', 'view_students', 'عرض الطلاب'),
(8, 'instructor', 'enter_grades', 'إدخال الدرجات'),
(9, 'student', 'view_grades', 'عرض الدرجات'),
(10, 'student', 'request_certificates', 'طلب الشهادات');

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

--
-- Table structure for table `published_results`
--

CREATE TABLE `published_results` (
  `id` int(11) NOT NULL,
  `semester_id` int(11) NOT NULL,
  `published_by` int(11) NOT NULL,
  `published_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `expires_at` timestamp NOT NULL,
  `is_active` tinyint(1) DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `published_results`
--

INSERT INTO `published_results` (`id`, `semester_id`, `published_by`, `published_at`, `expires_at`, `is_active`) VALUES
(1, 12, 12, '2025-11-27 18:33:36', '2025-12-04 19:33:36', 1);

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

--
-- Table structure for table `semesters`
--

CREATE TABLE `semesters` (
  `id` int(11) NOT NULL,
  `major_id` int(11) NOT NULL,
  `semester_number` int(11) NOT NULL,
  `academic_year` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
  `start_date` date DEFAULT NULL,
  `end_date` date DEFAULT NULL,
  `is_active` tinyint(1) DEFAULT '1',
  `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;

--
-- Dumping data for table `semesters`
--

INSERT INTO `semesters` (`id`, `major_id`, `semester_number`, `academic_year`, `start_date`, `end_date`, `is_active`, `created_at`) VALUES
(5, 9, 1, '2020-2021', '2020-09-01', '2021-01-31', 1, '2025-11-25 06:01:43'),
(6, 9, 2, '2020-2021', '2021-02-01', '2021-06-30', 1, '2025-11-25 06:01:43'),
(7, 9, 3, '2021-2022', '2021-09-01', '2022-01-31', 1, '2025-11-25 06:01:43'),
(8, 9, 4, '2021-2022', '2022-02-01', '2022-06-30', 1, '2025-11-25 06:01:43'),
(9, 9, 5, '2022-2023', '2022-09-01', '2023-01-31', 1, '2025-11-25 06:01:43'),
(10, 9, 6, '2022-2023', '2023-02-01', '2023-06-30', 1, '2025-11-25 06:01:43'),
(11, 9, 7, '2023-2024', '2023-09-01', '2024-01-31', 1, '2025-11-25 06:01:43'),
(12, 9, 8, '2023-2024', '2024-02-01', '2024-06-30', 1, '2025-11-25 06:01:43'),
(13, 9, 7, '2024-2025', '0000-00-00', '0000-00-00', 1, '2025-11-29 02:30:00'),
(14, 9, 8, '2024-2025', '0000-00-00', '0000-00-00', 1, '2025-11-29 02:31:03');

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

--
-- Table structure for table `semester_calibrations`
--

CREATE TABLE `semester_calibrations` (
  `id` int(11) NOT NULL,
  `semester_id` int(11) NOT NULL,
  `target_mean` decimal(5,2) NOT NULL,
  `target_std` decimal(5,2) NOT NULL,
  `calibrated_by` int(11) NOT NULL,
  `calibrated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `semester_gpas`
--

CREATE TABLE `semester_gpas` (
  `id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `semester_id` int(11) NOT NULL,
  `total_credit_hours` decimal(5,2) NOT NULL,
  `total_points` decimal(10,2) NOT NULL,
  `gpa` decimal(4,2) NOT NULL,
  `calculated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `semester_gpas`
--

INSERT INTO `semester_gpas` (`id`, `student_id`, `semester_id`, `total_credit_hours`, `total_points`, `gpa`, `calculated_at`) VALUES
(125, 6, 5, '11.00', '42.50', '3.86', '2025-11-29 05:46:17'),
(126, 6, 6, '10.00', '40.00', '4.00', '2025-11-29 05:46:17'),
(127, 6, 7, '12.00', '48.00', '4.00', '2025-11-29 05:46:18'),
(128, 6, 8, '11.00', '44.00', '4.00', '2025-11-29 05:46:18'),
(129, 6, 9, '11.00', '44.00', '4.00', '2025-11-29 05:46:18'),
(130, 6, 10, '11.00', '44.00', '4.00', '2025-11-29 05:46:18'),
(131, 6, 11, '11.00', '41.00', '3.73', '2025-11-29 05:46:18'),
(132, 6, 12, '11.00', '35.00', '3.18', '2025-11-29 05:46:18'),
(134, 10, 5, '11.00', '30.00', '2.73', '2025-11-29 05:46:18'),
(135, 10, 6, '10.00', '28.00', '2.80', '2025-11-29 05:46:18'),
(136, 10, 7, '12.00', '37.50', '3.13', '2025-11-29 05:46:18'),
(137, 10, 8, '11.00', '35.50', '3.23', '2025-11-29 05:46:18'),
(138, 10, 9, '11.00', '35.50', '3.23', '2025-11-29 05:46:18'),
(139, 10, 10, '11.00', '37.50', '3.41', '2025-11-29 05:46:18'),
(140, 10, 11, '11.00', '37.00', '3.36', '2025-11-29 05:46:18'),
(141, 10, 12, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(142, 11, 5, '11.00', '35.50', '3.23', '2025-11-29 05:46:18'),
(143, 11, 6, '10.00', '32.00', '3.20', '2025-11-29 05:46:18'),
(144, 11, 7, '12.00', '40.50', '3.38', '2025-11-29 05:46:18'),
(145, 11, 8, '11.00', '37.00', '3.36', '2025-11-29 05:46:18'),
(146, 11, 9, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(147, 11, 10, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(148, 11, 11, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(149, 11, 12, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(150, 12, 5, '11.00', '37.00', '3.36', '2025-11-29 05:46:18'),
(151, 12, 6, '10.00', '35.00', '3.50', '2025-11-29 05:46:18'),
(152, 12, 7, '12.00', '42.00', '3.50', '2025-11-29 05:46:18'),
(153, 12, 8, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(154, 12, 9, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(155, 12, 10, '11.00', '40.00', '3.64', '2025-11-29 05:46:18'),
(156, 12, 11, '11.00', '40.00', '3.64', '2025-11-29 05:46:18'),
(157, 12, 12, '11.00', '41.00', '3.73', '2025-11-29 05:46:18'),
(158, 13, 5, '11.00', '38.50', '3.50', '2025-11-29 05:46:18'),
(159, 13, 6, '10.00', '35.00', '3.50', '2025-11-29 05:46:18'),
(160, 13, 7, '12.00', '43.50', '3.63', '2025-11-29 05:46:18'),
(161, 13, 8, '11.00', '39.50', '3.59', '2025-11-29 05:46:18'),
(162, 13, 9, '11.00', '41.00', '3.73', '2025-11-29 05:46:18'),
(163, 13, 10, '11.00', '41.50', '3.77', '2025-11-29 05:46:18'),
(164, 13, 11, '11.00', '42.50', '3.86', '2025-11-29 05:46:18'),
(165, 13, 12, '11.00', '42.50', '3.86', '2025-11-29 05:46:18');

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

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

CREATE TABLE `settings` (
  `setting_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `setting_value` text COLLATE utf8mb4_unicode_ci,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `settings`
--

INSERT INTO `settings` (`setting_key`, `setting_value`) VALUES
('academic_affairs_name', 'هارون عبدالله عيسى'),
('academic_affairs_title', 'أمين الشؤون العلمية'),
('dean_name', 'هند عبدالعزيز محمد بخيت'),
('dean_title', 'عميد الكلية'),
('registrar_name', 'رباح عوض الرفاعي'),
('registrar_title', 'مسجل الكلية');

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

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

CREATE TABLE `students` (
  `id` int(11) NOT NULL,
  `college_id` int(11) NOT NULL,
  `major_id` int(11) NOT NULL,
  `student_number` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `national_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `full_name_ar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `full_name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `phone` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `address` text COLLATE utf8mb4_unicode_ci,
  `enrollment_date` date NOT NULL,
  `graduation_date` date DEFAULT NULL,
  `photo_path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('active','graduated','suspended','withdrawn') COLLATE utf8mb4_unicode_ci DEFAULT 'active',
  `results_blocked` tinyint(1) DEFAULT '0',
  `user_id` int(11) 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_unicode_ci;

--
-- Dumping data for table `students`
--

INSERT INTO `students` (`id`, `college_id`, `major_id`, `student_number`, `national_id`, `full_name_ar`, `full_name_en`, `email`, `phone`, `address`, `enrollment_date`, `graduation_date`, `photo_path`, `status`, `results_blocked`, `user_id`, `created_at`) VALUES
(6, 6, 9, '24001', '77799882', 'هاشم جمال خالد محمد', 'Hashim Gamal Khalid Mohammed', '', '', NULL, '2025-11-16', NULL, NULL, 'active', 0, NULL, '2025-11-16 06:09:24'),
(7, 6, 9, '25005', '899774', 'ابوبكر محمد عبدالصادق', 'abubaker ', 'gffd@gmail.com', '7664447448', NULL, '2025-11-17', NULL, NULL, 'active', 0, 13, '2025-11-17 08:17:55'),
(8, 6, 9, '25023', '54883', 'جمال قاسم ضوى البيت', 'Gamal', '', '', NULL, '2025-11-17', NULL, NULL, 'active', 0, 14, '2025-11-17 19:27:01'),
(9, 6, 9, '25033', '6987', 'على موسى محمد', 'ِِAli', '', '', NULL, '2025-11-17', NULL, NULL, 'active', 0, 15, '2025-11-17 19:28:21'),
(10, 6, 9, '24002', '123456789002', 'أحمد محمد علي', NULL, NULL, NULL, NULL, '2025-11-25', NULL, NULL, 'active', 0, NULL, '2025-11-25 06:20:27'),
(11, 6, 9, '24003', '123456789003', 'فاطمة أحمد حسن', NULL, NULL, NULL, NULL, '2025-11-25', NULL, NULL, 'active', 0, NULL, '2025-11-25 06:20:27'),
(12, 6, 9, '24004', '123456789004', 'محمد خالد إبراهيم', NULL, NULL, NULL, NULL, '2025-11-25', NULL, NULL, 'active', 0, NULL, '2025-11-25 06:20:27'),
(13, 6, 9, '24005', '123456789005', 'سارة علي محمود', NULL, NULL, NULL, NULL, '2025-11-25', NULL, NULL, 'active', 0, NULL, '2025-11-25 06:20:27');

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

--
-- Table structure for table `student_courses`
--

CREATE TABLE `student_courses` (
  `id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL,
  `semester_id` int(11) NOT NULL,
  `registration_date` date NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `student_courses`
--

INSERT INTO `student_courses` (`id`, `student_id`, `course_id`, `semester_id`, `registration_date`, `created_at`) VALUES
(35, 6, 24, 5, '2025-11-25', '2025-11-25 06:20:27'),
(36, 6, 25, 5, '2025-11-25', '2025-11-25 06:20:27'),
(37, 6, 26, 5, '2025-11-25', '2025-11-25 06:20:27'),
(38, 6, 27, 5, '2025-11-25', '2025-11-25 06:20:27'),
(39, 6, 28, 6, '2025-11-25', '2025-11-25 06:20:27'),
(40, 6, 29, 6, '2025-11-25', '2025-11-25 06:20:27'),
(41, 6, 30, 6, '2025-11-25', '2025-11-25 06:20:27'),
(42, 6, 31, 6, '2025-11-25', '2025-11-25 06:20:27'),
(43, 6, 32, 7, '2025-11-25', '2025-11-25 06:20:27'),
(44, 6, 33, 7, '2025-11-25', '2025-11-25 06:20:27'),
(45, 6, 34, 7, '2025-11-25', '2025-11-25 06:20:27'),
(46, 6, 35, 7, '2025-11-25', '2025-11-25 06:20:27'),
(47, 6, 36, 8, '2025-11-25', '2025-11-25 06:20:27'),
(48, 6, 37, 8, '2025-11-25', '2025-11-25 06:20:27'),
(49, 6, 38, 8, '2025-11-25', '2025-11-25 06:20:27'),
(50, 6, 39, 8, '2025-11-25', '2025-11-25 06:20:27'),
(51, 6, 40, 9, '2025-11-25', '2025-11-25 06:20:27'),
(52, 6, 41, 9, '2025-11-25', '2025-11-25 06:20:27'),
(53, 6, 42, 9, '2025-11-25', '2025-11-25 06:20:27'),
(54, 6, 43, 9, '2025-11-25', '2025-11-25 06:20:27'),
(55, 6, 44, 10, '2025-11-25', '2025-11-25 06:20:27'),
(56, 6, 45, 10, '2025-11-25', '2025-11-25 06:20:27'),
(57, 6, 46, 10, '2025-11-25', '2025-11-25 06:20:27'),
(58, 6, 47, 10, '2025-11-25', '2025-11-25 06:20:27'),
(59, 6, 48, 11, '2025-11-25', '2025-11-25 06:20:27'),
(60, 6, 49, 11, '2025-11-25', '2025-11-25 06:20:27'),
(61, 6, 50, 11, '2025-11-25', '2025-11-25 06:20:27'),
(62, 6, 51, 11, '2025-11-25', '2025-11-25 06:20:27'),
(63, 6, 52, 12, '2025-11-25', '2025-11-25 06:20:27'),
(64, 6, 53, 12, '2025-11-25', '2025-11-25 06:20:27'),
(65, 6, 54, 12, '2025-11-25', '2025-11-25 06:20:27'),
(66, 6, 55, 12, '2025-11-25', '2025-11-25 06:20:27'),
(67, 10, 24, 5, '2025-11-25', '2025-11-25 06:20:27'),
(68, 10, 25, 5, '2025-11-25', '2025-11-25 06:20:27'),
(69, 10, 26, 5, '2025-11-25', '2025-11-25 06:20:27'),
(70, 10, 27, 5, '2025-11-25', '2025-11-25 06:20:27'),
(71, 10, 28, 6, '2025-11-25', '2025-11-25 06:20:27'),
(72, 10, 29, 6, '2025-11-25', '2025-11-25 06:20:27'),
(73, 10, 30, 6, '2025-11-25', '2025-11-25 06:20:27'),
(74, 10, 31, 6, '2025-11-25', '2025-11-25 06:20:27'),
(75, 10, 32, 7, '2025-11-25', '2025-11-25 06:20:27'),
(76, 10, 33, 7, '2025-11-25', '2025-11-25 06:20:27'),
(77, 10, 34, 7, '2025-11-25', '2025-11-25 06:20:27'),
(78, 10, 35, 7, '2025-11-25', '2025-11-25 06:20:27'),
(79, 10, 36, 8, '2025-11-25', '2025-11-25 06:20:27'),
(80, 10, 37, 8, '2025-11-25', '2025-11-25 06:20:27'),
(81, 10, 38, 8, '2025-11-25', '2025-11-25 06:20:27'),
(82, 10, 39, 8, '2025-11-25', '2025-11-25 06:20:27'),
(83, 10, 40, 9, '2025-11-25', '2025-11-25 06:20:27'),
(84, 10, 41, 9, '2025-11-25', '2025-11-25 06:20:27'),
(85, 10, 42, 9, '2025-11-25', '2025-11-25 06:20:27'),
(86, 10, 43, 9, '2025-11-25', '2025-11-25 06:20:27'),
(87, 10, 44, 10, '2025-11-25', '2025-11-25 06:20:27'),
(88, 10, 45, 10, '2025-11-25', '2025-11-25 06:20:27'),
(89, 10, 46, 10, '2025-11-25', '2025-11-25 06:20:27'),
(90, 10, 47, 10, '2025-11-25', '2025-11-25 06:20:27'),
(91, 10, 48, 11, '2025-11-25', '2025-11-25 06:20:27'),
(92, 10, 49, 11, '2025-11-25', '2025-11-25 06:20:27'),
(93, 10, 50, 11, '2025-11-25', '2025-11-25 06:20:27'),
(94, 10, 51, 11, '2025-11-25', '2025-11-25 06:20:27'),
(95, 10, 52, 12, '2025-11-25', '2025-11-25 06:20:27'),
(96, 10, 53, 12, '2025-11-25', '2025-11-25 06:20:27'),
(97, 10, 54, 12, '2025-11-25', '2025-11-25 06:20:27'),
(98, 10, 55, 12, '2025-11-25', '2025-11-25 06:20:27'),
(99, 11, 24, 5, '2025-11-25', '2025-11-25 06:20:27'),
(100, 11, 25, 5, '2025-11-25', '2025-11-25 06:20:27'),
(101, 11, 26, 5, '2025-11-25', '2025-11-25 06:20:27'),
(102, 11, 27, 5, '2025-11-25', '2025-11-25 06:20:27'),
(103, 11, 28, 6, '2025-11-25', '2025-11-25 06:20:27'),
(104, 11, 29, 6, '2025-11-25', '2025-11-25 06:20:27'),
(105, 11, 30, 6, '2025-11-25', '2025-11-25 06:20:27'),
(106, 11, 31, 6, '2025-11-25', '2025-11-25 06:20:27'),
(107, 11, 32, 7, '2025-11-25', '2025-11-25 06:20:27'),
(108, 11, 33, 7, '2025-11-25', '2025-11-25 06:20:27'),
(109, 11, 34, 7, '2025-11-25', '2025-11-25 06:20:27'),
(110, 11, 35, 7, '2025-11-25', '2025-11-25 06:20:27'),
(111, 11, 36, 8, '2025-11-25', '2025-11-25 06:20:27'),
(112, 11, 37, 8, '2025-11-25', '2025-11-25 06:20:27'),
(113, 11, 38, 8, '2025-11-25', '2025-11-25 06:20:27'),
(114, 11, 39, 8, '2025-11-25', '2025-11-25 06:20:27'),
(115, 11, 40, 9, '2025-11-25', '2025-11-25 06:20:27'),
(116, 11, 41, 9, '2025-11-25', '2025-11-25 06:20:27'),
(117, 11, 42, 9, '2025-11-25', '2025-11-25 06:20:27'),
(118, 11, 43, 9, '2025-11-25', '2025-11-25 06:20:27'),
(119, 11, 44, 10, '2025-11-25', '2025-11-25 06:20:27'),
(120, 11, 45, 10, '2025-11-25', '2025-11-25 06:20:27'),
(121, 11, 46, 10, '2025-11-25', '2025-11-25 06:20:27'),
(122, 11, 47, 10, '2025-11-25', '2025-11-25 06:20:27'),
(123, 11, 48, 11, '2025-11-25', '2025-11-25 06:20:27'),
(124, 11, 49, 11, '2025-11-25', '2025-11-25 06:20:27'),
(125, 11, 50, 11, '2025-11-25', '2025-11-25 06:20:27'),
(126, 11, 51, 11, '2025-11-25', '2025-11-25 06:20:27'),
(127, 11, 52, 12, '2025-11-25', '2025-11-25 06:20:27'),
(128, 11, 53, 12, '2025-11-25', '2025-11-25 06:20:27'),
(129, 11, 54, 12, '2025-11-25', '2025-11-25 06:20:27'),
(130, 11, 55, 12, '2025-11-25', '2025-11-25 06:20:27'),
(131, 12, 24, 5, '2025-11-25', '2025-11-25 06:20:27'),
(132, 12, 25, 5, '2025-11-25', '2025-11-25 06:20:27'),
(133, 12, 26, 5, '2025-11-25', '2025-11-25 06:20:27'),
(134, 12, 27, 5, '2025-11-25', '2025-11-25 06:20:27'),
(135, 12, 28, 6, '2025-11-25', '2025-11-25 06:20:27'),
(136, 12, 29, 6, '2025-11-25', '2025-11-25 06:20:27'),
(137, 12, 30, 6, '2025-11-25', '2025-11-25 06:20:27'),
(138, 12, 31, 6, '2025-11-25', '2025-11-25 06:20:27'),
(139, 12, 32, 7, '2025-11-25', '2025-11-25 06:20:27'),
(140, 12, 33, 7, '2025-11-25', '2025-11-25 06:20:27'),
(141, 12, 34, 7, '2025-11-25', '2025-11-25 06:20:27'),
(142, 12, 35, 7, '2025-11-25', '2025-11-25 06:20:27'),
(143, 12, 36, 8, '2025-11-25', '2025-11-25 06:20:27'),
(144, 12, 37, 8, '2025-11-25', '2025-11-25 06:20:27'),
(145, 12, 38, 8, '2025-11-25', '2025-11-25 06:20:27'),
(146, 12, 39, 8, '2025-11-25', '2025-11-25 06:20:27'),
(147, 12, 40, 9, '2025-11-25', '2025-11-25 06:20:27'),
(148, 12, 41, 9, '2025-11-25', '2025-11-25 06:20:27'),
(149, 12, 42, 9, '2025-11-25', '2025-11-25 06:20:27'),
(150, 12, 43, 9, '2025-11-25', '2025-11-25 06:20:27'),
(151, 12, 44, 10, '2025-11-25', '2025-11-25 06:20:27'),
(152, 12, 45, 10, '2025-11-25', '2025-11-25 06:20:27'),
(153, 12, 46, 10, '2025-11-25', '2025-11-25 06:20:27'),
(154, 12, 47, 10, '2025-11-25', '2025-11-25 06:20:27'),
(155, 12, 48, 11, '2025-11-25', '2025-11-25 06:20:27'),
(156, 12, 49, 11, '2025-11-25', '2025-11-25 06:20:27'),
(157, 12, 50, 11, '2025-11-25', '2025-11-25 06:20:27'),
(158, 12, 51, 11, '2025-11-25', '2025-11-25 06:20:27'),
(159, 12, 52, 12, '2025-11-25', '2025-11-25 06:20:27'),
(160, 12, 53, 12, '2025-11-25', '2025-11-25 06:20:27'),
(161, 12, 54, 12, '2025-11-25', '2025-11-25 06:20:27'),
(162, 12, 55, 12, '2025-11-25', '2025-11-25 06:20:27'),
(163, 13, 24, 5, '2025-11-25', '2025-11-25 06:20:27'),
(164, 13, 25, 5, '2025-11-25', '2025-11-25 06:20:27'),
(165, 13, 26, 5, '2025-11-25', '2025-11-25 06:20:27'),
(166, 13, 27, 5, '2025-11-25', '2025-11-25 06:20:27'),
(167, 13, 28, 6, '2025-11-25', '2025-11-25 06:20:27'),
(168, 13, 29, 6, '2025-11-25', '2025-11-25 06:20:27'),
(169, 13, 30, 6, '2025-11-25', '2025-11-25 06:20:27'),
(170, 13, 31, 6, '2025-11-25', '2025-11-25 06:20:27'),
(171, 13, 32, 7, '2025-11-25', '2025-11-25 06:20:27'),
(172, 13, 33, 7, '2025-11-25', '2025-11-25 06:20:27'),
(173, 13, 34, 7, '2025-11-25', '2025-11-25 06:20:27'),
(174, 13, 35, 7, '2025-11-25', '2025-11-25 06:20:27'),
(175, 13, 36, 8, '2025-11-25', '2025-11-25 06:20:27'),
(176, 13, 37, 8, '2025-11-25', '2025-11-25 06:20:27'),
(177, 13, 38, 8, '2025-11-25', '2025-11-25 06:20:27'),
(178, 13, 39, 8, '2025-11-25', '2025-11-25 06:20:27'),
(179, 13, 40, 9, '2025-11-25', '2025-11-25 06:20:27'),
(180, 13, 41, 9, '2025-11-25', '2025-11-25 06:20:27'),
(181, 13, 42, 9, '2025-11-25', '2025-11-25 06:20:27'),
(182, 13, 43, 9, '2025-11-25', '2025-11-25 06:20:27'),
(183, 13, 44, 10, '2025-11-25', '2025-11-25 06:20:27'),
(184, 13, 45, 10, '2025-11-25', '2025-11-25 06:20:27'),
(185, 13, 46, 10, '2025-11-25', '2025-11-25 06:20:27'),
(186, 13, 47, 10, '2025-11-25', '2025-11-25 06:20:27'),
(187, 13, 48, 11, '2025-11-25', '2025-11-25 06:20:27'),
(188, 13, 49, 11, '2025-11-25', '2025-11-25 06:20:27'),
(189, 13, 50, 11, '2025-11-25', '2025-11-25 06:20:27'),
(190, 13, 51, 11, '2025-11-25', '2025-11-25 06:20:27'),
(191, 13, 52, 12, '2025-11-25', '2025-11-25 06:20:27'),
(192, 13, 53, 12, '2025-11-25', '2025-11-25 06:20:27'),
(193, 13, 54, 12, '2025-11-25', '2025-11-25 06:20:27'),
(194, 13, 55, 12, '2025-11-25', '2025-11-25 06:20:27'),
(195, 6, 22, 13, '2025-11-29', '2025-11-29 02:30:00'),
(196, 6, 3, 13, '2025-11-29', '2025-11-29 02:30:00'),
(197, 6, 21, 13, '2025-11-29', '2025-11-29 02:30:00'),
(198, 6, 17, 13, '2025-11-29', '2025-11-29 02:30:00'),
(199, 6, 19, 13, '2025-11-29', '2025-11-29 02:30:00'),
(200, 6, 18, 13, '2025-11-29', '2025-11-29 02:30:00'),
(201, 6, 20, 13, '2025-11-29', '2025-11-29 02:30:00'),
(202, 6, 23, 13, '2025-11-29', '2025-11-29 02:30:00'),
(203, 10, 22, 13, '2025-11-29', '2025-11-29 02:30:00'),
(204, 10, 3, 13, '2025-11-29', '2025-11-29 02:30:00'),
(205, 10, 21, 13, '2025-11-29', '2025-11-29 02:30:00'),
(206, 10, 17, 13, '2025-11-29', '2025-11-29 02:30:00'),
(207, 10, 19, 13, '2025-11-29', '2025-11-29 02:30:00'),
(208, 10, 18, 13, '2025-11-29', '2025-11-29 02:30:00'),
(209, 10, 20, 13, '2025-11-29', '2025-11-29 02:30:00'),
(210, 10, 23, 13, '2025-11-29', '2025-11-29 02:30:00'),
(211, 11, 22, 13, '2025-11-29', '2025-11-29 02:30:00'),
(212, 11, 3, 13, '2025-11-29', '2025-11-29 02:30:00'),
(213, 11, 21, 13, '2025-11-29', '2025-11-29 02:30:00'),
(214, 11, 17, 13, '2025-11-29', '2025-11-29 02:30:00'),
(215, 11, 19, 13, '2025-11-29', '2025-11-29 02:30:00'),
(216, 11, 18, 13, '2025-11-29', '2025-11-29 02:30:00'),
(217, 11, 20, 13, '2025-11-29', '2025-11-29 02:30:00'),
(218, 11, 23, 13, '2025-11-29', '2025-11-29 02:30:00'),
(219, 12, 22, 13, '2025-11-29', '2025-11-29 02:30:00'),
(220, 12, 3, 13, '2025-11-29', '2025-11-29 02:30:00'),
(221, 12, 21, 13, '2025-11-29', '2025-11-29 02:30:00'),
(222, 12, 17, 13, '2025-11-29', '2025-11-29 02:30:00'),
(223, 12, 19, 13, '2025-11-29', '2025-11-29 02:30:00'),
(224, 12, 18, 13, '2025-11-29', '2025-11-29 02:30:00'),
(225, 12, 20, 13, '2025-11-29', '2025-11-29 02:30:00'),
(226, 12, 23, 13, '2025-11-29', '2025-11-29 02:30:00'),
(227, 13, 22, 13, '2025-11-29', '2025-11-29 02:30:00'),
(228, 13, 3, 13, '2025-11-29', '2025-11-29 02:30:00'),
(229, 13, 21, 13, '2025-11-29', '2025-11-29 02:30:00'),
(230, 13, 17, 13, '2025-11-29', '2025-11-29 02:30:00'),
(231, 13, 19, 13, '2025-11-29', '2025-11-29 02:30:00'),
(232, 13, 18, 13, '2025-11-29', '2025-11-29 02:30:00'),
(233, 13, 20, 13, '2025-11-29', '2025-11-29 02:30:00'),
(234, 13, 23, 13, '2025-11-29', '2025-11-29 02:30:00'),
(235, 6, 22, 14, '2025-11-29', '2025-11-29 02:31:03'),
(236, 6, 3, 14, '2025-11-29', '2025-11-29 02:31:03'),
(237, 6, 21, 14, '2025-11-29', '2025-11-29 02:31:03'),
(238, 6, 17, 14, '2025-11-29', '2025-11-29 02:31:03'),
(239, 6, 19, 14, '2025-11-29', '2025-11-29 02:31:03'),
(240, 6, 18, 14, '2025-11-29', '2025-11-29 02:31:03'),
(241, 6, 20, 14, '2025-11-29', '2025-11-29 02:31:03'),
(242, 6, 23, 14, '2025-11-29', '2025-11-29 02:31:03'),
(243, 10, 22, 14, '2025-11-29', '2025-11-29 02:31:03'),
(244, 10, 3, 14, '2025-11-29', '2025-11-29 02:31:03'),
(245, 10, 21, 14, '2025-11-29', '2025-11-29 02:31:03'),
(246, 10, 17, 14, '2025-11-29', '2025-11-29 02:31:03'),
(247, 10, 19, 14, '2025-11-29', '2025-11-29 02:31:03'),
(248, 10, 18, 14, '2025-11-29', '2025-11-29 02:31:03'),
(249, 10, 20, 14, '2025-11-29', '2025-11-29 02:31:03'),
(250, 10, 23, 14, '2025-11-29', '2025-11-29 02:31:03'),
(251, 11, 22, 14, '2025-11-29', '2025-11-29 02:31:03'),
(252, 11, 3, 14, '2025-11-29', '2025-11-29 02:31:03'),
(253, 11, 21, 14, '2025-11-29', '2025-11-29 02:31:03'),
(254, 11, 17, 14, '2025-11-29', '2025-11-29 02:31:03'),
(255, 11, 19, 14, '2025-11-29', '2025-11-29 02:31:03'),
(256, 11, 18, 14, '2025-11-29', '2025-11-29 02:31:03'),
(257, 11, 20, 14, '2025-11-29', '2025-11-29 02:31:03'),
(258, 11, 23, 14, '2025-11-29', '2025-11-29 02:31:03'),
(259, 12, 22, 14, '2025-11-29', '2025-11-29 02:31:03'),
(260, 12, 3, 14, '2025-11-29', '2025-11-29 02:31:03'),
(261, 12, 21, 14, '2025-11-29', '2025-11-29 02:31:03'),
(262, 12, 17, 14, '2025-11-29', '2025-11-29 02:31:03'),
(263, 12, 19, 14, '2025-11-29', '2025-11-29 02:31:03'),
(264, 12, 18, 14, '2025-11-29', '2025-11-29 02:31:03'),
(265, 12, 20, 14, '2025-11-29', '2025-11-29 02:31:03'),
(266, 12, 23, 14, '2025-11-29', '2025-11-29 02:31:03'),
(267, 13, 22, 14, '2025-11-29', '2025-11-29 02:31:03'),
(268, 13, 3, 14, '2025-11-29', '2025-11-29 02:31:03'),
(269, 13, 21, 14, '2025-11-29', '2025-11-29 02:31:03'),
(270, 13, 17, 14, '2025-11-29', '2025-11-29 02:31:03'),
(271, 13, 19, 14, '2025-11-29', '2025-11-29 02:31:03'),
(272, 13, 18, 14, '2025-11-29', '2025-11-29 02:31:03'),
(273, 13, 20, 14, '2025-11-29', '2025-11-29 02:31:03'),
(274, 13, 23, 14, '2025-11-29', '2025-11-29 02:31:03');

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

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

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `college_id` int(11) NOT NULL,
  `username` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `full_name_ar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `full_name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `role` enum('admin','college_admin','registrar','instructor','student') COLLATE utf8mb4_unicode_ci NOT NULL,
  `is_active` tinyint(1) DEFAULT '1',
  `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;

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

INSERT INTO `users` (`id`, `college_id`, `username`, `password`, `full_name_ar`, `full_name_en`, `email`, `role`, `is_active`, `created_at`) VALUES
(12, 6, 'admin', '$2y$10$BW2nyL.5d1SswZSZjSQnj.f16dBBGTSvdtLDOxCvQrxdaa/GqGRjW', 'مدير النظام', NULL, NULL, 'admin', 1, '2025-11-16 17:31:50'),
(13, 6, 'STU25005', '$2y$10$dAKE/kO.ncQz7Z5zoYMlcOe955v35GA.hQi5DMa9IUAA84GEso8k.', 'ابوبكر محمد عبدالصادق', 'abubaker ', 'gffd@gmail.com', 'admin', 1, '2025-11-17 08:17:55'),
(14, 6, 'STU25023', '$2y$10$1CmpHEerAI3tskOt6KFfR.pFKP9U0d2kJ3dzvU4NXfcLIzQpBZpoG', 'جمال قاسم ضوى البيت', 'Gamal', '', 'student', 1, '2025-11-17 19:27:01'),
(15, 6, 'STU25033', '$2y$10$48kkc6ex66nOj816mBE2M.7Vn6ieQs06p.VyVHokh2LtelHgS1Ova', 'على موسى محمد', 'ِِAli', '', 'student', 1, '2025-11-17 19:28:21');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `activity_logs`
--
ALTER TABLE `activity_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_user_id` (`user_id`),
  ADD KEY `idx_action` (`action`),
  ADD KEY `idx_entity` (`entity_type`,`entity_id`),
  ADD KEY `idx_created_at` (`created_at`);

--
-- Indexes for table `calibrated_grades`
--
ALTER TABLE `calibrated_grades`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_grade_calibration` (`grade_id`),
  ADD KEY `course_id` (`course_id`),
  ADD KEY `calibrated_by` (`calibrated_by`),
  ADD KEY `idx_semester` (`semester_id`),
  ADD KEY `idx_student_course` (`student_id`,`course_id`,`semester_id`);

--
-- Indexes for table `certificates`
--
ALTER TABLE `certificates`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `certificate_number` (`certificate_number`),
  ADD KEY `certificate_request_id` (`certificate_request_id`),
  ADD KEY `student_id` (`student_id`),
  ADD KEY `issued_by` (`issued_by`);

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

--
-- Indexes for table `colleges`
--
ALTER TABLE `colleges`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `code` (`code`);

--
-- Indexes for table `courses`
--
ALTER TABLE `courses`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_course_code` (`major_id`,`code`),
  ADD KEY `semester_id` (`semester_id`);

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

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

--
-- Indexes for table `grades`
--
ALTER TABLE `grades`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_student_course_grade` (`student_course_id`),
  ADD KEY `student_id` (`student_id`),
  ADD KEY `course_id` (`course_id`),
  ADD KEY `semester_id` (`semester_id`),
  ADD KEY `entered_by` (`entered_by`),
  ADD KEY `calibrated_by` (`calibrated_by`);

--
-- Indexes for table `majors`
--
ALTER TABLE `majors`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_major_code` (`college_id`,`code`);

--
-- Indexes for table `permissions`
--
ALTER TABLE `permissions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_role_permission` (`role`,`permission_name`);

--
-- Indexes for table `published_results`
--
ALTER TABLE `published_results`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_semester_published` (`semester_id`),
  ADD KEY `published_by` (`published_by`),
  ADD KEY `idx_expires_at` (`expires_at`),
  ADD KEY `idx_is_active` (`is_active`);

--
-- Indexes for table `semesters`
--
ALTER TABLE `semesters`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_semester` (`major_id`,`semester_number`,`academic_year`);

--
-- Indexes for table `semester_calibrations`
--
ALTER TABLE `semester_calibrations`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_semester_calibration` (`semester_id`),
  ADD KEY `calibrated_by` (`calibrated_by`);

--
-- Indexes for table `semester_gpas`
--
ALTER TABLE `semester_gpas`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_student_semester_gpa` (`student_id`,`semester_id`),
  ADD KEY `semester_id` (`semester_id`);

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

--
-- Indexes for table `students`
--
ALTER TABLE `students`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `student_number` (`student_number`),
  ADD UNIQUE KEY `national_id` (`national_id`),
  ADD KEY `college_id` (`college_id`),
  ADD KEY `major_id` (`major_id`),
  ADD KEY `user_id` (`user_id`);

--
-- Indexes for table `student_courses`
--
ALTER TABLE `student_courses`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_student_course_semester` (`student_id`,`course_id`,`semester_id`),
  ADD KEY `course_id` (`course_id`),
  ADD KEY `semester_id` (`semester_id`);

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`),
  ADD KEY `college_id` (`college_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `activity_logs`
--
ALTER TABLE `activity_logs`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

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

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

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

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

--
-- AUTO_INCREMENT for table `courses`
--
ALTER TABLE `courses`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=56;

--
-- AUTO_INCREMENT for table `cumulative_gpas`
--
ALTER TABLE `cumulative_gpas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=138;

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

--
-- AUTO_INCREMENT for table `grades`
--
ALTER TABLE `grades`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=196;

--
-- AUTO_INCREMENT for table `majors`
--
ALTER TABLE `majors`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;

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

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

--
-- AUTO_INCREMENT for table `semesters`
--
ALTER TABLE `semesters`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

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

--
-- AUTO_INCREMENT for table `semester_gpas`
--
ALTER TABLE `semester_gpas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=230;

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

--
-- AUTO_INCREMENT for table `student_courses`
--
ALTER TABLE `student_courses`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=275;

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

--
-- Constraints for dumped tables
--

--
-- Constraints for table `activity_logs`
--
ALTER TABLE `activity_logs`
  ADD CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `calibrated_grades`
--
ALTER TABLE `calibrated_grades`
  ADD CONSTRAINT `calibrated_grades_ibfk_1` FOREIGN KEY (`grade_id`) REFERENCES `grades` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `calibrated_grades_ibfk_2` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `calibrated_grades_ibfk_3` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `calibrated_grades_ibfk_4` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `calibrated_grades_ibfk_5` FOREIGN KEY (`calibrated_by`) REFERENCES `users` (`id`) ON DELETE RESTRICT;

--
-- Constraints for table `certificates`
--
ALTER TABLE `certificates`
  ADD CONSTRAINT `certificates_ibfk_1` FOREIGN KEY (`certificate_request_id`) REFERENCES `certificate_requests` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `certificates_ibfk_2` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `certificates_ibfk_3` FOREIGN KEY (`issued_by`) REFERENCES `users` (`id`) ON DELETE RESTRICT;

--
-- Constraints for table `certificate_requests`
--
ALTER TABLE `certificate_requests`
  ADD CONSTRAINT `certificate_requests_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `certificate_requests_ibfk_2` FOREIGN KEY (`issued_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `courses`
--
ALTER TABLE `courses`
  ADD CONSTRAINT `courses_ibfk_1` FOREIGN KEY (`major_id`) REFERENCES `majors` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `courses_ibfk_2` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE SET NULL;

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

--
-- Constraints for table `fees`
--
ALTER TABLE `fees`
  ADD CONSTRAINT `fees_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fees_ibfk_2` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `grades`
--
ALTER TABLE `grades`
  ADD CONSTRAINT `grades_ibfk_1` FOREIGN KEY (`student_course_id`) REFERENCES `student_courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `grades_ibfk_2` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `grades_ibfk_3` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `grades_ibfk_4` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `grades_ibfk_5` FOREIGN KEY (`entered_by`) REFERENCES `users` (`id`) ON DELETE RESTRICT,
  ADD CONSTRAINT `grades_ibfk_6` FOREIGN KEY (`calibrated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `majors`
--
ALTER TABLE `majors`
  ADD CONSTRAINT `majors_ibfk_1` FOREIGN KEY (`college_id`) REFERENCES `colleges` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `published_results`
--
ALTER TABLE `published_results`
  ADD CONSTRAINT `published_results_ibfk_1` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `published_results_ibfk_2` FOREIGN KEY (`published_by`) REFERENCES `users` (`id`) ON DELETE RESTRICT;

--
-- Constraints for table `semesters`
--
ALTER TABLE `semesters`
  ADD CONSTRAINT `semesters_ibfk_1` FOREIGN KEY (`major_id`) REFERENCES `majors` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `semester_calibrations`
--
ALTER TABLE `semester_calibrations`
  ADD CONSTRAINT `semester_calibrations_ibfk_1` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `semester_calibrations_ibfk_2` FOREIGN KEY (`calibrated_by`) REFERENCES `users` (`id`) ON DELETE RESTRICT;

--
-- Constraints for table `semester_gpas`
--
ALTER TABLE `semester_gpas`
  ADD CONSTRAINT `semester_gpas_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `semester_gpas_ibfk_2` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `students`
--
ALTER TABLE `students`
  ADD CONSTRAINT `students_ibfk_1` FOREIGN KEY (`college_id`) REFERENCES `colleges` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `students_ibfk_2` FOREIGN KEY (`major_id`) REFERENCES `majors` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `students_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `student_courses`
--
ALTER TABLE `student_courses`
  ADD CONSTRAINT `student_courses_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `student_courses_ibfk_2` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `student_courses_ibfk_3` FOREIGN KEY (`semester_id`) REFERENCES `semesters` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `users`
--
ALTER TABLE `users`
  ADD CONSTRAINT `users_ibfk_1` FOREIGN KEY (`college_id`) REFERENCES `colleges` (`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 */;
