-- https://www.phpmyadmin.net/
--

START TRANSACTION;



--
-- Database: `school_db`
--

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

--
-- Table structure for table `academic_years`
--

CREATE TABLE `academic_years` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(50) NOT NULL,
  `start_date` date NOT NULL,
  `end_date` date NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `academic_years`
--

INSERT INTO `academic_years` (`id`, `name`, `start_date`, `end_date`, `created_at`, `updated_at`, `deleted_at`) VALUES
(4, '2024-2025', '2024-09-01', '2025-07-24', '2025-08-31 15:18:29', '2025-08-31 15:18:29', NULL),
(8, '2025-2026', '2025-09-02', '2026-07-22', '2025-08-31 21:32:16', '2025-08-31 21:32:16', NULL);

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

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

CREATE TABLE `activity_logs` (
  `id` int(9) UNSIGNED NOT NULL,
  `user_id` int(9) UNSIGNED DEFAULT NULL,
  `role` varchar(50) DEFAULT NULL,
  `action` varchar(255) NOT NULL,
  `ip_address` varchar(50) DEFAULT NULL,
  `user_agent` varchar(255) 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 `assessment_components`
--

CREATE TABLE `assessment_components` (
  `id` int(10) UNSIGNED NOT NULL,
  `assessment_section_id` int(10) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `max_mark` float 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 `assessment_modules`
--

CREATE TABLE `assessment_modules` (
  `id` int(10) UNSIGNED NOT NULL,
  `department_id` int(10) UNSIGNED NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` text 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 `assessment_sections`
--

CREATE TABLE `assessment_sections` (
  `id` int(10) UNSIGNED NOT NULL,
  `assessment_module_id` int(10) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `percentage` float DEFAULT NULL,
  `use_percentage` 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 `attendance_records`
--

CREATE TABLE `attendance_records` (
  `id` int(9) UNSIGNED NOT NULL,
  `academic_year_id` int(9) UNSIGNED NOT NULL,
  `term_id` int(9) UNSIGNED NOT NULL,
  `class_id` int(9) UNSIGNED NOT NULL,
  `house_id` int(9) UNSIGNED DEFAULT NULL,
  `student_id` int(9) UNSIGNED NOT NULL,
  `attendance_date` date NOT NULL,
  `status` enum('Present','Absent','Late','Excused') NOT NULL DEFAULT 'Present',
  `remarks` varchar(255) 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 `classes`
--

CREATE TABLE `classes` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(100) NOT NULL,
  `department_id` int(10) UNSIGNED NOT NULL,
  `description` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

INSERT INTO `classes` (`id`, `name`, `department_id`, `description`, `created_at`, `updated_at`) VALUES
(11, 'Class 1B', 5, '', '2025-07-26 10:12:04', '2025-07-26 10:12:04'),
(14, 'Class 2A', 5, '', '2025-08-25 03:53:17', '2025-08-25 03:53:17'),
(15, 'Class 1A', 5, '', '2025-08-31 11:50:05', '2025-08-31 11:50:05');

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

--
-- Table structure for table `class_subjects`
--

CREATE TABLE `class_subjects` (
  `id` int(10) UNSIGNED NOT NULL,
  `class_id` int(10) UNSIGNED NOT NULL,
  `subject_id` int(10) UNSIGNED NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

--
-- Table structure for table `comments`
--

CREATE TABLE `comments` (
  `id` int(9) UNSIGNED NOT NULL,
  `academic_year_id` int(9) UNSIGNED NOT NULL,
  `term_id` int(9) UNSIGNED NOT NULL,
  `class_id` int(9) UNSIGNED NOT NULL,
  `student_id` int(9) UNSIGNED NOT NULL,
  `comment` text DEFAULT NULL,
  `attendance` int(10) UNSIGNED DEFAULT NULL,
  `promoted_to_class_id` int(10) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `comments`
--

INSERT INTO `comments` (`id`, `academic_year_id`, `term_id`, `class_id`, `student_id`, `comment`, `attendance`, `promoted_to_class_id`, `created_at`, `updated_at`) VALUES
(1, 1, 1, 12, 37, 'very hard working student. C & R Good', 51, 9, '2025-08-17 20:21:47', '2025-08-18 01:09:13'),
(2, 1, 1, 12, 41, 'she needs to take her studies seriously. Very respectful and Obedient', 43, 10, '2025-08-17 20:21:47', '2025-08-18 01:09:13'),
(3, 1, 1, 12, 40, 'Very Good. Keep it up. ', 16, 0, '2025-08-17 20:21:47', '2025-08-18 01:09:13'),
(4, 1, 1, 10, 43, 'goody', 61, 0, '2025-08-17 21:42:38', '2025-08-18 03:37:24'),
(5, 1, 1, 10, 38, 'fgd', 55, 0, '2025-08-17 21:42:38', '2025-08-18 03:37:24'),
(6, 1, 1, 10, 39, 'fdg', 56, 0, '2025-08-17 21:42:38', '2025-08-18 03:37:24'),
(7, 1, 1, 10, 42, 'dfg', 6, 0, '2025-08-17 21:42:38', '2025-08-18 03:37:24'),
(8, 1, 1, 12, 154, 'good', 57, 13, '2025-08-24 21:32:00', '2025-08-24 21:32:00'),
(9, 1, 1, 12, 155, 'fair', 61, 13, '2025-08-24 21:32:00', '2025-08-24 21:32:00'),
(10, 1, 2, 12, 154, 'fine', 44, 0, '2025-08-24 21:32:54', '2025-08-24 21:32:54'),
(11, 1, 2, 12, 155, 'not fine', 49, 13, '2025-08-24 21:32:54', '2025-08-24 21:32:54'),
(12, 1, 4, 12, 154, '', 0, 0, '2025-08-24 21:34:26', '2025-08-24 21:34:26'),
(13, 1, 4, 12, 155, '', 0, 0, '2025-08-24 21:34:26', '2025-08-24 21:34:26'),
(14, 1, 1, 12, 1, 'fine', 53, 0, '2025-08-25 05:39:38', '2025-08-29 08:51:38'),
(15, 1, 1, 12, 2, 'good', 60, 0, '2025-08-25 05:39:38', '2025-08-26 22:14:11'),
(16, 1, 1, 12, 3, 'v. good', 55, 0, '2025-08-29 08:51:38', '2025-08-29 08:51:38'),
(17, 1, 2, 10, 2, 'hhh', 45, 0, '2025-08-29 09:07:41', '2025-08-29 09:07:41'),
(18, 1, 2, 10, 4, 'jjjjjj', 55, 0, '2025-08-29 09:07:41', '2025-08-29 09:07:41'),
(19, 4, 2, 15, 5, 'more room for improvement', 50, 14, '2026-02-06 21:28:17', '2026-02-06 21:28:17'),
(20, 4, 2, 15, 6, 'has improved', 53, 0, '2026-02-06 21:28:17', '2026-02-06 21:28:17'),
(21, 8, 2, 15, 5, 'good work', 8, 0, '2026-02-06 22:11:11', '2026-02-06 22:11:11'),
(22, 8, 2, 15, 6, 'improving', 0, 0, '2026-02-06 22:11:11', '2026-02-06 22:11:11'),
(23, 8, 5, 15, 5, 'no fine', 7, 0, '2026-02-06 22:23:54', '2026-02-06 22:23:54'),
(24, 8, 5, 15, 6, 'fine', 8, 0, '2026-02-06 22:23:54', '2026-02-06 22:23:54');

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

--
-- Table structure for table `departments`
--

CREATE TABLE `departments` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `departments`
--

INSERT INTO `departments` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES
(5, 'Primary', 'Lower', '2025-07-03 11:50:14', '2025-07-03 11:50:14');

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

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

CREATE TABLE `enrollments` (
  `id` int(9) UNSIGNED NOT NULL,
  `student_id` int(9) UNSIGNED NOT NULL,
  `academic_year_id` int(9) UNSIGNED NOT NULL,
  `term_id` int(9) UNSIGNED NOT NULL,
  `department_id` int(9) UNSIGNED NOT NULL,
  `class_id` int(9) UNSIGNED NOT NULL,
  `house_id` int(9) UNSIGNED DEFAULT NULL,
  `enrollment_date` date DEFAULT NULL,
  `status` enum('active','transferred','graduated','suspended','withdrawn') DEFAULT 'active',
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

--
-- Table structure for table `fee_bands`
--

CREATE TABLE `fee_bands` (
  `id` int(9) UNSIGNED NOT NULL,
  `fee_system_id` int(9) UNSIGNED NOT NULL,
  `bill_item` varchar(255) NOT NULL,
  `amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `fee_bands`
--

INSERT INTO `fee_bands` (`id`, `fee_system_id`, `bill_item`, `amount`, `created_at`, `updated_at`) VALUES
(21, 6, 'Library Fee', 1000.00, '2025-09-11 16:51:42', '2025-09-11 16:51:42'),
(22, 6, 'P.T.A Dues', 120.00, '2025-09-11 16:51:42', '2025-09-11 16:51:42'),
(23, 6, 'Printing Fee', 45.50, '2025-09-11 16:51:42', '2025-09-11 16:51:42'),
(24, 6, 'Tuition Fee', 70.00, '2025-09-11 16:51:42', '2025-09-11 16:51:42'),
(25, 6, 'ICT dues', 35.00, '2025-09-11 16:51:42', '2025-09-11 16:51:42'),
(26, 6, 'Clinic Levy', 47.00, '2025-09-11 16:51:42', '2025-09-11 16:51:42'),
(27, 7, 'admission fee', 3000.00, '2025-09-21 22:24:43', '2025-09-21 22:24:43'),
(28, 7, 'sch fee', 500.00, '2025-09-21 22:24:43', '2025-09-21 22:24:43');

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

--
-- Table structure for table `fee_entries`
--

CREATE TABLE `fee_entries` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `class_id` int(10) UNSIGNED NOT NULL,
  `academic_year_id` int(10) UNSIGNED NOT NULL,
  `term_id` int(10) UNSIGNED NOT NULL,
  `bill_item` varchar(255) DEFAULT NULL,
  `amount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `discount` decimal(10,2) NOT NULL DEFAULT 0.00,
  `amount_due` decimal(10,2) NOT NULL DEFAULT 0.00,
  `arrears` decimal(10,2) NOT NULL DEFAULT 0.00,
  `total_payable` decimal(10,2) NOT NULL DEFAULT 0.00,
  `status` enum('unpaid','paid','partial') NOT NULL DEFAULT 'unpaid',
  `payment_date` date DEFAULT NULL,
  `reference_number` varchar(100) 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_general_ci;

--
-- Dumping data for table `fee_entries`
--

INSERT INTO `fee_entries` (`id`, `student_id`, `class_id`, `academic_year_id`, `term_id`, `bill_item`, `amount`, `discount`, `amount_due`, `arrears`, `total_payable`, `status`, `payment_date`, `reference_number`, `created_at`, `updated_at`) VALUES
(15, 5, 15, 4, 5, NULL, 0.00, 33.00, 0.00, 888.00, 888.00, 'unpaid', NULL, NULL, '2025-09-15 15:03:45', '2025-09-15 15:09:37'),
(16, 6, 15, 4, 5, NULL, 0.00, 9.00, 0.00, 111.00, 111.00, 'unpaid', NULL, NULL, '2025-09-15 15:03:45', '2025-09-15 15:09:37'),
(21, 5, 15, 4, 2, NULL, 0.00, 200.00, 0.00, 500.00, 500.00, 'unpaid', NULL, NULL, '2025-10-20 15:38:59', '2025-10-20 15:54:25'),
(22, 6, 15, 4, 2, NULL, 0.00, 0.00, 0.00, 1000.00, 1000.00, 'unpaid', NULL, NULL, '2025-10-20 15:38:59', '2025-10-20 15:54:25'),
(23, 7, 14, 4, 2, NULL, 0.00, 0.00, 0.00, 900.00, 900.00, 'unpaid', NULL, NULL, '2025-10-20 15:57:47', '2025-10-20 15:57:47');

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

--
-- Table structure for table `fee_systems`
--

CREATE TABLE `fee_systems` (
  `id` int(9) UNSIGNED NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `department_id` int(9) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `fee_systems`
--

INSERT INTO `fee_systems` (`id`, `name`, `description`, `department_id`, `created_at`, `updated_at`) VALUES
(6, 'Fee Category A', '', 5, '2025-09-10 20:16:37', '2025-09-11 16:51:42'),
(7, 'hg', '', 5, '2025-09-21 22:24:43', '2025-09-21 22:24:43');

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

--
-- Table structure for table `grading_bands`
--

CREATE TABLE `grading_bands` (
  `id` int(9) UNSIGNED NOT NULL,
  `grading_system_id` int(9) UNSIGNED NOT NULL,
  `score_from` decimal(5,2) NOT NULL,
  `score_to` decimal(5,2) NOT NULL,
  `grade` varchar(5) NOT NULL,
  `remark` varchar(100) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `grading_bands`
--

INSERT INTO `grading_bands` (`id`, `grading_system_id`, `score_from`, `score_to`, `grade`, `remark`, `created_at`, `updated_at`) VALUES
(44, 8, 90.00, 100.00, '1', 'Excellent', '2026-02-06 22:02:14', '2026-02-06 22:02:14'),
(45, 8, 80.00, 89.00, '2', 'Very Good', '2026-02-06 22:02:14', '2026-02-06 22:02:14'),
(46, 8, 70.00, 79.00, '3', 'Good', '2026-02-06 22:02:14', '2026-02-06 22:02:14'),
(47, 8, 60.00, 69.00, '4', 'Credit', '2026-02-06 22:02:14', '2026-02-06 22:02:14'),
(48, 8, 50.00, 59.00, '5', 'Average', '2026-02-06 22:02:14', '2026-02-06 22:02:14'),
(49, 8, 0.00, 49.00, '6', 'Weak', '2026-02-06 22:02:14', '2026-02-06 22:02:14');

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

--
-- Table structure for table `grading_systems`
--

CREATE TABLE `grading_systems` (
  `id` int(9) UNSIGNED NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `department_id` int(9) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `grading_systems`
--

INSERT INTO `grading_systems` (`id`, `name`, `description`, `department_id`, `created_at`, `updated_at`) VALUES
(8, 'Primary Grading System', '', 5, '2025-07-22 12:55:33', '2026-02-06 22:02:14');

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

--
-- Table structure for table `houses`
--

CREATE TABLE `houses` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `houses`
--

INSERT INTO `houses` (`id`, `name`, `description`, `created_at`, `updated_at`, `deleted_at`) VALUES
(1, 'Yellow', '', '2025-07-03 12:14:47', '2025-08-31 11:59:45', '2025-08-31 11:59:45'),
(2, 'Red', '', '2025-07-03 12:23:27', '2025-07-03 12:23:27', NULL),
(3, 'Blue', '', '2025-07-03 12:23:42', '2025-07-03 12:23:42', NULL),
(4, 'Green', '', '2025-07-03 12:23:54', '2025-07-03 12:23:54', NULL),
(5, 'pink', '', '2025-07-03 12:24:05', '2025-07-03 12:24:24', '2025-07-03 12:24:24');

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

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

CREATE TABLE `migrations` (
  `id` bigint(20) 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=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `migrations`
--

INSERT INTO `migrations` (`id`, `version`, `class`, `group`, `namespace`, `time`, `batch`) VALUES
(1, '2025-06-27-110000', 'App\\Database\\Migrations\\CreateRolesTable', 'default', 'App', 1751053594, 1),
(2, '2025-06-27-110010', 'App\\Database\\Migrations\\CreateUsersTable', 'default', 'App', 1751053594, 1),
(3, '2025-06-27-110020', 'App\\Database\\Migrations\\CreateAcademicYearsTable', 'default', 'App', 1751053594, 1),
(4, '2025-06-27-110030', 'App\\Database\\Migrations\\CreateTermsTable', 'default', 'App', 1751053594, 1),
(5, '2025-06-27-110040', 'App\\Database\\Migrations\\CreateDepartmentsTable', 'default', 'App', 1751053594, 1),
(6, '2025-06-27-110050', 'App\\Database\\Migrations\\CreateClassesTable', 'default', 'App', 1751053594, 1),
(7, '2025-06-27-110060', 'App\\Database\\Migrations\\CreateHousesTable', 'default', 'App', 1751053594, 1),
(8, '2025-06-27-110070', 'App\\Database\\Migrations\\CreateSubjectsTable', 'default', 'App', 1751053594, 1),
(9, '2025-06-27-110080', 'App\\Database\\Migrations\\CreateTeachersTable', 'default', 'App', 1751053594, 1),
(10, '2025-06-27-110090', 'App\\Database\\Migrations\\CreateParentsTable', 'default', 'App', 1751053595, 1),
(11, '2025-06-27-110100', 'App\\Database\\Migrations\\CreateStudentsTable', 'default', 'App', 1751053595, 1),
(12, '2025-06-27-110105', 'App\\Database\\Migrations\\CreateStudentParentsTable', 'default', 'App', 1751053595, 1),
(13, '2025-06-27-110110', 'App\\Database\\Migrations\\CreateEnrollmentsTable', 'default', 'App', 1751053595, 1),
(14, '2025-06-27-110120', 'App\\Database\\Migrations\\CreateClassSubjectsTable', 'default', 'App', 1751053595, 1),
(15, '2025-06-27-110130', 'App\\Database\\Migrations\\CreateTeacherAssignmentsTable', 'default', 'App', 1751053595, 1),
(16, '2025-06-27-110140', 'App\\Database\\Migrations\\CreateGradingSystemsTable', 'default', 'App', 1751053595, 1),
(17, '2025-06-27-110150', 'App\\Database\\Migrations\\CreateGradingBandsTable', 'default', 'App', 1751053595, 1),
(18, '2025-06-27-110160', 'App\\Database\\Migrations\\CreateScoreConversionsTable', 'default', 'App', 1751053595, 1),
(19, '2025-06-27-110170', 'App\\Database\\Migrations\\CreateFeesCategoriesTable', 'default', 'App', 1751053595, 1),
(20, '2025-06-27-110180', 'App\\Database\\Migrations\\CreateFeesStructuresTable', 'default', 'App', 1751053595, 1),
(21, '2025-06-27-110190', 'App\\Database\\Migrations\\CreateFeePaymentsTable', 'default', 'App', 1751053595, 1),
(22, '2025-06-27-110200', 'App\\Database\\Migrations\\CreateAttendanceRecordsTable', 'default', 'App', 1751116390, 2),
(23, '2025-06-27-110210', 'App\\Database\\Migrations\\CreateResultsTable', 'default', 'App', 1751116390, 2),
(24, '2025-06-27-110220', 'App\\Database\\Migrations\\CreateResultCommentsTable', 'default', 'App', 1751116390, 2),
(25, '2025-06-27-110230', 'App\\Database\\Migrations\\CreateSettingsTable', 'default', 'App', 1751116390, 2),
(26, '2025-06-27-110240', 'App\\Database\\Migrations\\CreateActivityLogsTable', 'default', 'App', 1751116390, 2),
(27, '2025-06-28-132243', 'App\\Database\\Migrations\\CreatePromotionRecordsTable', 'default', 'App', 1751117146, 3),
(28, '2025-06-28-132436', 'App\\Database\\Migrations\\CreateTimetablesTable', 'default', 'App', 1751117146, 3),
(29, '2025-06-28-161914', 'App\\Database\\Migrations\\CreateUserRolesTable', 'default', 'App', 1751127616, 4),
(30, '2025-06-28-110000', 'App\\Database\\Migrations\\CreateRolesTable', 'default', 'App', 1751131723, 5),
(31, '2025-06-28-110010', 'App\\Database\\Migrations\\CreateUsersTable', 'default', 'App', 1751131723, 5),
(32, '2025-06-28-110015', 'App\\Database\\Migrations\\CreateUserRolesTable', 'default', 'App', 1751131723, 5),
(33, '2025-06-29-110000', 'App\\Database\\Migrations\\CreateRolesTable', 'default', 'App', 1751199231, 6),
(34, '2025-06-29-110010', 'App\\Database\\Migrations\\CreateUsersTable', 'default', 'App', 1751199231, 6),
(35, '2025-06-29-110015', 'App\\Database\\Migrations\\CreateUserRolesTable', 'default', 'App', 1751199231, 6),
(36, '2025-07-04-215007', 'App\\Database\\Migrations\\AlterTeachersTable', 'default', 'App', 1751666035, 7),
(37, '2025-07-05-100838', 'App\\Database\\Migrations\\CreateTeacherAssignmentClassSubject', 'default', 'App', 1751710271, 8),
(38, '2025-07-05-115753', 'App\\Database\\Migrations\\RemoveClassAndSubjectFromTeacherAssignments', 'default', 'App', 1751716791, 9),
(39, '2025-07-06-125106', 'App\\Database\\Migrations\\AddStatusToEnrollments', 'default', 'App', 1752773040, 10),
(40, '2025-07-17-134153', 'App\\Database\\Migrations\\CreateAssessmentModules', 'default', 'App', 1752773471, 11),
(41, '2025-07-17-100000', 'App\\Database\\Migrations\\CreateAssessmentModules', 'default', 'App', 1752776053, 12),
(42, '2025-07-17-100100', 'App\\Database\\Migrations\\CreateAssessmentSections', 'default', 'App', 1752776053, 12),
(43, '2025-07-17-100200', 'App\\Database\\Migrations\\CreateAssessmentComponents', 'default', 'App', 1752776053, 12),
(44, '2025-07-20-112031', 'App\\Database\\Migrations\\CreateExamSchedulesTable', 'default', 'App', 1753010576, 13),
(45, '2025-07-22-110010', 'App\\Database\\Migrations\\CreateResultsTable', 'default', 'App', 1753197229, 14),
(46, '2025-07-22-152020', 'App\\Database\\Migrations\\CreateResultsTable', 'default', 'App', 1753197711, 15),
(47, '2025-07-22-162020', 'App\\Database\\Migrations\\CreateResultsTable', 'default', 'App', 1753222281, 16);

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

--
-- Table structure for table `promotion_records`
--

CREATE TABLE `promotion_records` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `new_student_id` int(11) DEFAULT NULL,
  `from_class_id` int(10) UNSIGNED NOT NULL,
  `to_class_id` int(10) UNSIGNED NOT NULL,
  `promotion_date` date NOT NULL,
  `promoted_by` int(10) UNSIGNED DEFAULT NULL,
  `remarks` text DEFAULT NULL,
  `is_current` tinyint(1) DEFAULT 0,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `promotion_records`
--

INSERT INTO `promotion_records` (`id`, `student_id`, `new_student_id`, `from_class_id`, `to_class_id`, `promotion_date`, `promoted_by`, `remarks`, `is_current`, `created_at`, `updated_at`, `deleted_at`) VALUES
(18, 5, 5, 15, 11, '2026-02-06', 1, 'Moved to new class', 1, '2026-02-06 22:26:01', '2026-02-06 22:26:01', NULL),
(19, 6, 6, 15, 11, '2026-02-06', 1, 'Moved to new class', 1, '2026-02-06 22:26:01', '2026-02-06 22:26:01', NULL);

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

--
-- Table structure for table `results`
--

CREATE TABLE `results` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `class_id` int(10) UNSIGNED NOT NULL,
  `subject_id` int(10) UNSIGNED NOT NULL,
  `academic_year_id` int(10) UNSIGNED NOT NULL,
  `term_id` int(10) UNSIGNED NOT NULL,
  `class_score` decimal(4,1) DEFAULT NULL,
  `exam_score` decimal(4,1) DEFAULT NULL,
  `converted_class_score` decimal(4,1) DEFAULT NULL,
  `converted_exam_score` decimal(4,1) DEFAULT NULL,
  `total_score` decimal(4,1) DEFAULT NULL,
  `grade` varchar(10) DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  `position` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `results`
--

INSERT INTO `results` (`id`, `student_id`, `class_id`, `subject_id`, `academic_year_id`, `term_id`, `class_score`, `exam_score`, `converted_class_score`, `converted_exam_score`, `total_score`, `grade`, `remark`, `position`, `created_at`, `updated_at`) VALUES
(32, 2, 10, 13, 1, 1, 89.0, 0.0, 44.5, 0.0, 44.5, 'F', 'Weak', 1, '2025-08-27 18:45:20', '2025-08-29 23:06:39'),
(33, 4, 10, 13, 1, 1, 89.0, 0.0, 44.5, 0.0, 44.5, 'F', 'Weak', 1, '2025-08-27 21:54:52', '2025-08-29 23:06:39'),
(34, 1, 12, 15, 1, 1, 71.0, 81.0, 21.3, 56.7, 78.0, '3', 'HIGH', 2, '2025-08-28 11:08:16', '2025-08-29 22:41:04'),
(35, 3, 12, 15, 1, 1, 91.0, 99.0, 27.3, 69.3, 96.6, '1', 'HIGHEST', 1, '2025-08-28 11:08:16', '2025-08-29 22:41:04'),
(36, 1, 12, 16, 1, 1, 50.0, 70.0, 15.0, 49.0, 64.0, '4', 'HIGH AVERAGE', 2, '2025-08-28 11:19:14', '2025-08-28 11:19:14'),
(37, 3, 12, 16, 1, 1, 89.0, 87.0, 26.7, 60.9, 87.6, '2', 'HIGHER', 1, '2025-08-28 11:19:14', '2025-08-28 11:19:14'),
(38, 1, 12, 17, 1, 1, 50.0, 30.0, 15.0, 21.0, 36.0, '7', 'LOW', 1, '2025-08-28 11:22:01', '2025-08-28 11:26:53'),
(39, 3, 12, 17, 1, 1, 50.0, 30.0, 15.0, 21.0, 36.0, '7', 'LOW', 1, '2025-08-28 11:22:01', '2025-08-28 11:26:53'),
(40, 1, 12, 18, 1, 1, 75.0, 55.0, 22.5, 38.5, 61.0, '4', 'HIGH AVERAGE', 2, '2025-08-28 11:28:42', '2025-08-28 11:28:41'),
(41, 3, 12, 18, 1, 1, 85.0, 60.0, 25.5, 42.0, 67.5, '4', 'HIGH AVERAGE', 1, '2025-08-28 11:28:42', '2025-08-28 11:28:42'),
(42, 1, 12, 19, 1, 1, 100.0, 99.0, 30.0, 69.3, 99.3, '1', 'HIGHEST', 1, '2025-08-28 11:37:54', '2025-08-28 11:37:54'),
(43, 3, 12, 19, 1, 1, 100.0, 98.0, 30.0, 68.6, 98.6, '1', 'HIGHEST', 2, '2025-08-28 11:37:54', '2025-08-28 11:37:54'),
(44, 1, 12, 20, 1, 1, 10.0, 20.0, 3.0, 14.0, 17.0, '9', 'LOWEST', 2, '2025-08-28 11:42:02', '2025-08-28 11:42:02'),
(45, 3, 12, 20, 1, 1, 30.0, 40.0, 9.0, 28.0, 37.0, '7', 'LOW', 1, '2025-08-28 11:42:02', '2025-08-28 11:42:02'),
(46, 1, 12, 21, 1, 1, 90.0, 90.0, 27.0, 63.0, 90.0, '1', 'HIGHEST', 1, '2025-08-28 12:09:25', '2025-08-28 12:09:25'),
(47, 3, 12, 21, 1, 1, 90.0, 90.0, 27.0, 63.0, 90.0, '1', 'HIGHEST', 1, '2025-08-28 12:09:25', '2025-08-28 12:09:25'),
(48, 1, 12, 22, 1, 1, 10.0, 56.0, 3.0, 39.2, 42.2, '6', 'LOW AVERAGE', 2, '2025-08-28 12:13:10', '2025-08-28 12:20:11'),
(49, 3, 12, 22, 1, 1, 44.0, 70.0, 13.2, 49.0, 62.2, '4', 'HIGH AVERAGE', 1, '2025-08-28 12:13:10', '2025-08-28 12:20:11'),
(50, 1, 12, 23, 1, 1, 66.0, 89.0, 19.8, 62.3, 82.1, '2', 'HIGHER', 2, '2025-08-28 12:41:57', '2025-08-28 12:41:57'),
(51, 3, 12, 23, 1, 1, 78.0, 89.0, 23.4, 62.3, 85.7, '2', 'HIGHER', 1, '2025-08-28 12:41:57', '2025-08-28 12:41:57'),
(52, 2, 10, 14, 1, 1, 8.0, 0.0, 4.0, 0.0, 4.0, 'F', 'Weak', 1, '2025-08-28 12:56:39', '2025-08-28 12:56:39'),
(53, 4, 10, 14, 1, 1, 0.0, 0.0, NULL, NULL, NULL, '', '', 2, '2025-08-28 12:56:39', '2025-08-28 12:56:39'),
(54, 2, 10, 13, 1, 2, 97.0, 100.0, 48.5, 50.0, 98.5, 'A', 'Excellent', 1, '2025-08-29 07:53:28', '2025-08-29 09:11:20'),
(55, 4, 10, 13, 1, 2, 1.0, 0.0, 0.5, 0.0, 0.5, 'F', 'Weak', 2, '2025-08-29 07:53:28', '2025-08-29 09:11:20'),
(56, 1, 12, 26, 1, 1, 100.0, 70.0, 30.0, 49.0, 79.0, '3', 'HIGH', 2, '2025-08-29 21:02:06', '2025-08-29 21:02:06'),
(57, 3, 12, 26, 1, 1, 100.0, 100.0, 30.0, 70.0, 100.0, '1', 'HIGHEST', 1, '2025-08-29 21:02:06', '2025-08-29 21:02:06'),
(58, 1, 12, 24, 1, 1, 80.0, 90.0, 24.0, 63.0, 87.0, '2', 'HIGHER', 1, '2025-08-29 21:03:24', '2025-08-29 21:03:24'),
(59, 3, 12, 24, 1, 1, 70.0, 80.0, 21.0, 56.0, 77.0, '3', 'HIGH', 2, '2025-08-29 21:03:24', '2025-08-29 21:03:24'),
(60, 1, 12, 25, 1, 1, 98.0, 95.0, 29.4, 66.5, 95.9, '1', 'HIGHEST', 2, '2025-08-29 21:04:21', '2025-08-29 21:04:21'),
(61, 3, 12, 25, 1, 1, 90.0, 100.0, 27.0, 70.0, 97.0, '1', 'HIGHEST', 1, '2025-08-29 21:04:21', '2025-08-29 21:04:21'),
(62, 5, 15, 28, 3, 8, 100.0, 100.0, 50.0, 50.0, 100.0, 'A', 'Excellent', 1, '2025-08-31 14:46:07', '2025-08-31 14:47:22'),
(63, 5, 15, 28, 4, 5, 60.0, 70.0, 30.0, 35.0, 65.0, 'D', 'Credit', 1, '2025-09-13 08:53:06', '2025-09-13 08:53:06'),
(88, 5, 15, 28, 4, 2, 40.0, 0.0, 20.0, 0.0, 20.0, 'F', 'Weak', 2, '2026-02-06 21:21:56', '2026-02-06 21:21:56'),
(89, 6, 15, 28, 4, 2, 60.0, 0.0, 30.0, 0.0, 30.0, 'F', 'Weak', 1, '2026-02-06 21:21:56', '2026-02-06 21:21:56'),
(90, 8, 14, 28, 4, 2, 80.0, 0.0, 40.0, 0.0, 40.0, '6', 'Weak', 2, '2026-02-06 22:04:29', '2026-02-06 22:04:29'),
(91, 7, 14, 28, 4, 2, 90.0, 0.0, 45.0, 0.0, 45.0, '6', 'Weak', 1, '2026-02-06 22:04:29', '2026-02-06 22:04:29'),
(92, 5, 15, 28, 8, 5, 80.0, 80.0, 40.0, 40.0, 80.0, '2', 'Very Good', 2, '2026-02-06 22:16:49', '2026-02-06 22:16:49'),
(93, 6, 15, 28, 8, 5, 90.0, 85.0, 45.0, 42.5, 87.5, '2', 'Very Good', 1, '2026-02-06 22:16:49', '2026-02-06 22:16:49'),
(94, 5, 11, 28, 8, 5, 100.0, 90.0, 50.0, 45.0, 95.0, '1', 'Excellent', 2, '2026-02-06 22:34:16', '2026-02-06 22:34:16'),
(95, 6, 11, 28, 8, 5, 100.0, 95.0, 50.0, 47.5, 97.5, '1', 'Excellent', 1, '2026-02-06 22:34:16', '2026-02-06 22:34:16');

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

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

CREATE TABLE `roles` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(50) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

INSERT INTO `roles` (`id`, `name`, `created_at`, `updated_at`) VALUES
(1, 'admin', NULL, NULL),
(2, 'teacher', NULL, NULL),
(3, 'student', NULL, NULL),
(4, 'parent', NULL, NULL),
(5, 'accountant', NULL, NULL);

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

--
-- Table structure for table `score_conversions`
--

CREATE TABLE `score_conversions` (
  `id` int(9) UNSIGNED NOT NULL,
  `department_id` int(9) UNSIGNED DEFAULT NULL,
  `class_score` decimal(4,1) DEFAULT NULL,
  `exam_score` decimal(4,1) DEFAULT NULL,
  `description` varchar(150) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `score_conversions`
--

INSERT INTO `score_conversions` (`id`, `department_id`, `class_score`, `exam_score`, `description`, `created_at`, `updated_at`) VALUES
(6, 5, 50.0, 50.0, NULL, '2025-07-17 22:06:41', '2025-08-31 13:38:57');

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

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

CREATE TABLE `settings` (
  `id` int(9) UNSIGNED NOT NULL,
  `school_name` varchar(255) DEFAULT NULL,
  `school_email` varchar(100) DEFAULT NULL,
  `school_phone` varchar(50) DEFAULT NULL,
  `school_address` varchar(255) DEFAULT NULL,
  `motto` varchar(255) DEFAULT NULL,
  `logo` varchar(255) DEFAULT NULL,
  `signature_principal` varchar(255) DEFAULT NULL,
  `signature_accountant` varchar(255) DEFAULT NULL,
  `current_academic_year_id` int(9) UNSIGNED DEFAULT NULL,
  `current_term_id` int(9) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

INSERT INTO `settings` (`id`, `school_name`, `school_email`, `school_phone`, `school_address`, `motto`, `logo`, `signature_principal`, `signature_accountant`, `current_academic_year_id`, `current_term_id`, `created_at`, `updated_at`) VALUES
(4, 'Proswoan Academy', 'proswoanacademy@gmail.com', '(+233) 0592409087', 'Post Office Box 56, La-Accra, Opposite Ariel View Hotel De Mark', 'Excellence is Our Hall Mark', '1770384545_fc14e2425a95a412b0b6.png', '1770415185_f1e8e73c194aee490a10.jpg', '1756655101_0552c35676c9d67dc51e.jpg', 4, 2, NULL, NULL);

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

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

CREATE TABLE `students` (
  `id` int(9) UNSIGNED NOT NULL,
  `surname` varchar(100) NOT NULL,
  `first_name` varchar(100) NOT NULL,
  `other_names` varchar(100) DEFAULT NULL,
  `gender` enum('Male','Female') NOT NULL,
  `date_of_birth` date DEFAULT NULL,
  `nationality` varchar(100) DEFAULT NULL,
  `photo` varchar(255) DEFAULT NULL,
  `academic_year_id` int(11) DEFAULT NULL,
  `previous_academic_year_id` int(11) DEFAULT NULL,
  `is_active` tinyint(1) DEFAULT 1,
  `term_id` int(11) DEFAULT NULL,
  `department_id` int(9) UNSIGNED DEFAULT NULL,
  `class_id` int(9) UNSIGNED DEFAULT NULL,
  `previous_class_id` int(11) DEFAULT NULL,
  `house_id` int(9) UNSIGNED DEFAULT NULL,
  `admission_number` varchar(50) NOT NULL,
  `admission_date` date DEFAULT NULL,
  `religion` varchar(50) DEFAULT NULL,
  `previous_school` varchar(150) DEFAULT NULL,
  `disability` varchar(150) DEFAULT NULL,
  `parent_relationship` varchar(20) DEFAULT NULL,
  `parent_phone` varchar(20) DEFAULT NULL,
  `parent_email` varchar(100) DEFAULT NULL,
  `parent_full_name` varchar(255) DEFAULT NULL,
  `parent_address` varchar(255) DEFAULT NULL,
  `parent_occupation` varchar(100) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

INSERT INTO `students` (`id`, `surname`, `first_name`, `other_names`, `gender`, `date_of_birth`, `nationality`, `photo`, `academic_year_id`, `previous_academic_year_id`, `is_active`, `term_id`, `department_id`, `class_id`, `previous_class_id`, `house_id`, `admission_number`, `admission_date`, `religion`, `previous_school`, `disability`, `parent_relationship`, `parent_phone`, `parent_email`, `parent_full_name`, `parent_address`, `parent_occupation`, `created_at`, `updated_at`, `deleted_at`) VALUES
(5, 'Debo', 'sam kelly', NULL, 'Male', NULL, '', '68b43852e1aad.jpg', NULL, NULL, 1, NULL, 5, 11, NULL, NULL, '98', '2025-08-31', '', '', '', '', '', '', '', '', '', NULL, '2026-02-06 22:26:01', NULL),
(6, 'Fiati', 'Rubby Yawaa', NULL, 'Female', NULL, '', '68c7243f3e1fd.jpg', NULL, NULL, 1, NULL, 5, 11, NULL, NULL, 'Adm44', '2025-09-14', '', '', '', '', '', '', '', '', '', NULL, '2026-02-06 22:26:01', NULL),
(7, 'DEGAH', 'CYNTHIA', NULL, 'Female', NULL, '', NULL, NULL, NULL, 1, NULL, 5, 14, NULL, NULL, 'ADM-886', '2025-10-05', '', '', '', '', '', '', '', '', '', NULL, NULL, NULL),
(8, 'AGBANYO', 'HARRY', NULL, 'Male', '2020-06-08', 'GHANAIAN', '69220a9b415eb.jpg', NULL, NULL, 1, NULL, 5, 14, NULL, 2, 'ADC23', '2025-11-22', 'CRT', '', '', '', '0249710432', '', 'WOANGBA PROS', '', '', NULL, NULL, NULL);

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

--
-- Table structure for table `student_fee_options`
--

CREATE TABLE `student_fee_options` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `fees_category_id` int(10) UNSIGNED NOT NULL,
  `academic_year_id` int(10) UNSIGNED NOT NULL,
  `term_id` int(10) UNSIGNED NOT NULL,
  `class_id` int(10) UNSIGNED NOT NULL,
  `assigned_by` int(10) UNSIGNED 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 `student_parents`
--

CREATE TABLE `student_parents` (
  `id` int(10) UNSIGNED NOT NULL,
  `student_id` int(10) UNSIGNED NOT NULL,
  `parent_id` int(10) UNSIGNED NOT NULL,
  `relationship` enum('Father','Mother','Guardian') 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 `subjects`
--

CREATE TABLE `subjects` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(100) NOT NULL,
  `code` varchar(20) DEFAULT NULL,
  `department_id` int(10) UNSIGNED NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `subjects`
--

INSERT INTO `subjects` (`id`, `name`, `code`, `department_id`, `created_at`, `updated_at`) VALUES
(28, 'matb', '79', 5, '2025-08-31 12:05:52', '2025-08-31 12:05:52');

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

--
-- Table structure for table `teachers`
--

CREATE TABLE `teachers` (
  `id` int(10) UNSIGNED NOT NULL,
  `user_id` int(10) UNSIGNED NOT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  `gender` enum('Male','Female') DEFAULT NULL,
  `qualification` varchar(100) DEFAULT NULL,
  `photo` varchar(255) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `teachers`
--

INSERT INTO `teachers` (`id`, `user_id`, `phone`, `address`, `gender`, `qualification`, `photo`, `created_at`, `updated_at`) VALUES
(10, 3, '0249710432', 'Box 63, Tema', 'Male', 'Degree', '1753341507_92ea9f7b4b4ab1cdd376.jpg', '2025-07-24 07:18:27', '2025-07-24 07:18:27'),
(11, 8, '0249755593', 'Box 59, Dansoman', 'Female', 'Diploma', '1753341582_4b2889f8f989ea28883e.jpg', '2025-07-24 07:19:42', '2025-07-24 07:19:42'),
(13, 16, '0304444446', 'Box 34 Akatsi V/R', 'Male', 'PhD', '1756562706_08f650a62bd0255f2e5c.jpg', '2025-08-30 14:05:06', '2025-08-30 14:05:06'),
(14, 17, '044', 'bx', 'Female', 'dg', '1756591685_d6daa6c94b9c2e30eb49.jpg', '2025-08-30 22:07:18', '2025-08-30 22:08:05');

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

--
-- Table structure for table `teacher_assignments`
--

CREATE TABLE `teacher_assignments` (
  `id` int(9) UNSIGNED NOT NULL,
  `teacher_id` int(9) UNSIGNED NOT NULL,
  `academic_year_id` int(9) UNSIGNED NOT NULL,
  `term_id` int(9) UNSIGNED NOT NULL,
  `department_id` int(9) UNSIGNED NOT NULL,
  `assigned_date` date DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `teacher_assignments`
--

INSERT INTO `teacher_assignments` (`id`, `teacher_id`, `academic_year_id`, `term_id`, `department_id`, `assigned_date`, `created_at`, `updated_at`) VALUES
(29, 10, 4, 2, 5, '2025-11-13', NULL, NULL);

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

--
-- Table structure for table `teacher_assignment_class_subject`
--

CREATE TABLE `teacher_assignment_class_subject` (
  `id` int(10) UNSIGNED NOT NULL,
  `teacher_assignment_id` int(10) UNSIGNED NOT NULL,
  `class_id` int(10) UNSIGNED NOT NULL,
  `subject_id` int(10) UNSIGNED NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `teacher_assignment_class_subject`
--

INSERT INTO `teacher_assignment_class_subject` (`id`, `teacher_assignment_id`, `class_id`, `subject_id`, `created_at`, `updated_at`) VALUES
(196, 29, 11, 28, NULL, NULL),
(197, 29, 14, 28, NULL, NULL);

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

--
-- Table structure for table `terms`
--

CREATE TABLE `terms` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(50) NOT NULL,
  `start_date` date NOT NULL,
  `end_date` date NOT NULL,
  `number_of_days_open` int(10) UNSIGNED DEFAULT NULL,
  `next_term_begins` date DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `terms`
--

INSERT INTO `terms` (`id`, `name`, `start_date`, `end_date`, `number_of_days_open`, `next_term_begins`, `created_at`, `updated_at`, `deleted_at`) VALUES
(1, 'First Term', '2025-07-23', '2025-08-10', 62, '2025-09-02', '2025-07-01 15:31:16', '2025-08-31 12:14:32', '2025-08-31 12:14:32'),
(2, 'Second Term', '2026-01-01', '2026-06-25', 56, '2026-07-14', '2025-07-01 15:32:26', '2026-02-06 21:55:31', NULL),
(4, 'Third Term', '2025-04-15', '2025-08-30', 0, '0000-00-00', '2025-08-24 21:29:02', '2025-08-24 21:29:02', NULL),
(5, 'First Term', '2025-08-20', '2025-08-14', 79, '0000-00-00', '2025-08-31 12:55:07', '2025-08-31 12:55:07', NULL),
(6, 'nh', '2025-09-03', '2025-08-29', 564, '2025-08-21', '2025-08-31 14:07:58', '2026-02-06 22:15:18', NULL),
(8, 'Fourth Term', '2025-01-10', '2025-07-30', 71, '2025-09-20', '2025-08-31 14:43:47', '2025-08-31 14:44:21', NULL);

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

--
-- Table structure for table `timetables`
--

CREATE TABLE `timetables` (
  `id` int(10) UNSIGNED NOT NULL,
  `academic_year_id` int(10) UNSIGNED NOT NULL,
  `term_id` int(10) UNSIGNED DEFAULT NULL,
  `class_id` int(10) UNSIGNED NOT NULL,
  `house_id` int(10) UNSIGNED DEFAULT NULL,
  `day_of_week` varchar(20) NOT NULL,
  `period_number` int(2) NOT NULL,
  `start_time` time NOT NULL,
  `end_time` time NOT NULL,
  `subject_id` int(10) UNSIGNED NOT NULL,
  `teacher_id` int(10) UNSIGNED DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

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

CREATE TABLE `user_roles` (
  `id` int(10) UNSIGNED NOT NULL,
  `user_id` int(10) UNSIGNED NOT NULL,
  `role_id` int(10) UNSIGNED NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB 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`) VALUES
(11, 3, 1, '2025-06-29 13:40:25', '2025-06-29 18:10:46'),
(13, 5, 1, NULL, NULL),
(15, 7, 2, NULL, NULL),
(16, 8, 2, NULL, NULL),
(17, 13, 1, NULL, NULL),
(18, 14, 4, NULL, NULL),
(19, 15, 4, NULL, NULL),
(20, 16, 2, NULL, NULL),
(21, 17, 2, NULL, NULL),
(22, 18, 2, NULL, NULL),
(23, 19, 3, NULL, NULL),
(24, 20, 2, NULL, NULL),
(25, 21, 5, NULL, NULL);

--
-- Indexes for dumped tables
--

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

--
-- Indexes for table `activity_logs`
--
ALTER TABLE `activity_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `activity_logs_user_id_foreign` (`user_id`);

--
-- Indexes for table `assessment_components`
--
ALTER TABLE `assessment_components`
  ADD PRIMARY KEY (`id`),
  ADD KEY `assessment_components_assessment_section_id_foreign` (`assessment_section_id`);

--
-- Indexes for table `assessment_modules`
--
ALTER TABLE `assessment_modules`
  ADD PRIMARY KEY (`id`),
  ADD KEY `assessment_modules_department_id_foreign` (`department_id`);

--
-- Indexes for table `assessment_sections`
--
ALTER TABLE `assessment_sections`
  ADD PRIMARY KEY (`id`),
  ADD KEY `assessment_sections_assessment_module_id_foreign` (`assessment_module_id`);

--
-- Indexes for table `attendance_records`
--
ALTER TABLE `attendance_records`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `student_id_attendance_date` (`student_id`,`attendance_date`),
  ADD KEY `attendance_records_academic_year_id_foreign` (`academic_year_id`),
  ADD KEY `attendance_records_term_id_foreign` (`term_id`),
  ADD KEY `attendance_records_class_id_foreign` (`class_id`),
  ADD KEY `attendance_records_house_id_foreign` (`house_id`);

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

--
-- Indexes for table `class_subjects`
--
ALTER TABLE `class_subjects`
  ADD PRIMARY KEY (`id`),
  ADD KEY `class_subjects_class_id_foreign` (`class_id`),
  ADD KEY `class_subjects_subject_id_foreign` (`subject_id`);

--
-- Indexes for table `comments`
--
ALTER TABLE `comments`
  ADD PRIMARY KEY (`id`),
  ADD KEY `academic_year_id` (`academic_year_id`),
  ADD KEY `term_id` (`term_id`),
  ADD KEY `class_id` (`class_id`),
  ADD KEY `student_id` (`student_id`),
  ADD KEY `promoted_to_class_id` (`promoted_to_class_id`);

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

--
-- Indexes for table `enrollments`
--
ALTER TABLE `enrollments`
  ADD PRIMARY KEY (`id`),
  ADD KEY `enrollments_student_id_foreign` (`student_id`),
  ADD KEY `enrollments_academic_year_id_foreign` (`academic_year_id`),
  ADD KEY `enrollments_term_id_foreign` (`term_id`),
  ADD KEY `enrollments_department_id_foreign` (`department_id`),
  ADD KEY `enrollments_class_id_foreign` (`class_id`),
  ADD KEY `enrollments_house_id_foreign` (`house_id`);

--
-- Indexes for table `fee_bands`
--
ALTER TABLE `fee_bands`
  ADD PRIMARY KEY (`id`),
  ADD KEY `fee_system_id` (`fee_system_id`);

--
-- Indexes for table `fee_entries`
--
ALTER TABLE `fee_entries`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_student_id` (`student_id`),
  ADD KEY `idx_class_id` (`class_id`),
  ADD KEY `idx_academic_year_id` (`academic_year_id`),
  ADD KEY `idx_term_id` (`term_id`),
  ADD KEY `idx_status` (`status`);

--
-- Indexes for table `fee_systems`
--
ALTER TABLE `fee_systems`
  ADD PRIMARY KEY (`id`),
  ADD KEY `department_id` (`department_id`);

--
-- Indexes for table `grading_bands`
--
ALTER TABLE `grading_bands`
  ADD PRIMARY KEY (`id`),
  ADD KEY `grading_bands_grading_system_id_foreign` (`grading_system_id`);

--
-- Indexes for table `grading_systems`
--
ALTER TABLE `grading_systems`
  ADD PRIMARY KEY (`id`),
  ADD KEY `grading_systems_department_id_foreign` (`department_id`);

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

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

--
-- Indexes for table `promotion_records`
--
ALTER TABLE `promotion_records`
  ADD PRIMARY KEY (`id`),
  ADD KEY `promotion_records_student_id_foreign` (`student_id`),
  ADD KEY `promotion_records_from_class_id_foreign` (`from_class_id`),
  ADD KEY `promotion_records_to_class_id_foreign` (`to_class_id`),
  ADD KEY `promotion_records_promoted_by_foreign` (`promoted_by`),
  ADD KEY `idx_is_current` (`is_current`),
  ADD KEY `idx_student_current` (`student_id`,`is_current`);

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

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

--
-- Indexes for table `score_conversions`
--
ALTER TABLE `score_conversions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `department_id_class_score_exam_score` (`department_id`,`class_score`,`exam_score`);

--
-- Indexes for table `settings`
--
ALTER TABLE `settings`
  ADD PRIMARY KEY (`id`),
  ADD KEY `settings_current_academic_year_id_foreign` (`current_academic_year_id`),
  ADD KEY `settings_current_term_id_foreign` (`current_term_id`);

--
-- Indexes for table `students`
--
ALTER TABLE `students`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `admission_number` (`admission_number`),
  ADD KEY `students_academic_year_id_foreign` (`academic_year_id`),
  ADD KEY `students_term_id_foreign` (`term_id`),
  ADD KEY `students_department_id_foreign` (`department_id`),
  ADD KEY `students_class_id_foreign` (`class_id`),
  ADD KEY `students_house_id_foreign` (`house_id`);

--
-- Indexes for table `student_fee_options`
--
ALTER TABLE `student_fee_options`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uniq_student_fee_option` (`student_id`,`fees_category_id`,`academic_year_id`,`term_id`,`class_id`),
  ADD KEY `fk_sfo_cat` (`fees_category_id`),
  ADD KEY `fk_sfo_ay` (`academic_year_id`),
  ADD KEY `fk_sfo_term` (`term_id`),
  ADD KEY `fk_sfo_class` (`class_id`),
  ADD KEY `fk_sfo_user` (`assigned_by`);

--
-- Indexes for table `student_parents`
--
ALTER TABLE `student_parents`
  ADD PRIMARY KEY (`id`),
  ADD KEY `student_parents_student_id_foreign` (`student_id`),
  ADD KEY `student_parents_parent_id_foreign` (`parent_id`);

--
-- Indexes for table `subjects`
--
ALTER TABLE `subjects`
  ADD PRIMARY KEY (`id`),
  ADD KEY `subjects_department_id_foreign` (`department_id`);

--
-- Indexes for table `teachers`
--
ALTER TABLE `teachers`
  ADD PRIMARY KEY (`id`),
  ADD KEY `teachers_user_id_foreign` (`user_id`);

--
-- Indexes for table `teacher_assignments`
--
ALTER TABLE `teacher_assignments`
  ADD PRIMARY KEY (`id`),
  ADD KEY `teacher_assignments_teacher_id_foreign` (`teacher_id`),
  ADD KEY `teacher_assignments_academic_year_id_foreign` (`academic_year_id`),
  ADD KEY `teacher_assignments_term_id_foreign` (`term_id`),
  ADD KEY `teacher_assignments_department_id_foreign` (`department_id`);

--
-- Indexes for table `teacher_assignment_class_subject`
--
ALTER TABLE `teacher_assignment_class_subject`
  ADD PRIMARY KEY (`id`),
  ADD KEY `teacher_assignment_class_subject_teacher_assignment_id_foreign` (`teacher_assignment_id`),
  ADD KEY `teacher_assignment_class_subject_class_id_foreign` (`class_id`),
  ADD KEY `teacher_assignment_class_subject_subject_id_foreign` (`subject_id`);

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

--
-- Indexes for table `timetables`
--
ALTER TABLE `timetables`
  ADD PRIMARY KEY (`id`),
  ADD KEY `timetables_academic_year_id_foreign` (`academic_year_id`),
  ADD KEY `timetables_term_id_foreign` (`term_id`),
  ADD KEY `timetables_class_id_foreign` (`class_id`),
  ADD KEY `timetables_house_id_foreign` (`house_id`),
  ADD KEY `timetables_subject_id_foreign` (`subject_id`),
  ADD KEY `timetables_teacher_id_foreign` (`teacher_id`);

--
-- Indexes for table `user_roles`
--
ALTER TABLE `user_roles`
  ADD PRIMARY KEY (`id`),
  ADD KEY `user_roles_user_id_foreign` (`user_id`),
  ADD KEY `user_roles_role_id_foreign` (`role_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `academic_years`
--
ALTER TABLE `academic_years`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

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

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

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

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

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

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

--
-- AUTO_INCREMENT for table `class_subjects`
--
ALTER TABLE `class_subjects`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `comments`
--
ALTER TABLE `comments`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=25;

--
-- AUTO_INCREMENT for table `departments`
--
ALTER TABLE `departments`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT for table `enrollments`
--
ALTER TABLE `enrollments`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--
-- AUTO_INCREMENT for table `fee_bands`
--
ALTER TABLE `fee_bands`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=29;

--
-- AUTO_INCREMENT for table `fee_entries`
--
ALTER TABLE `fee_entries`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=24;

--
-- AUTO_INCREMENT for table `fee_systems`
--
ALTER TABLE `fee_systems`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

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

--
-- AUTO_INCREMENT for table `grading_systems`
--
ALTER TABLE `grading_systems`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT for table `houses`
--
ALTER TABLE `houses`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT for table `migrations`
--
ALTER TABLE `migrations`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=48;

--
-- AUTO_INCREMENT for table `promotion_records`
--
ALTER TABLE `promotion_records`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=20;

--
-- AUTO_INCREMENT for table `results`
--
ALTER TABLE `results`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=96;

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

--
-- AUTO_INCREMENT for table `score_conversions`
--
ALTER TABLE `score_conversions`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;

--
-- AUTO_INCREMENT for table `settings`
--
ALTER TABLE `settings`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

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

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

--
-- AUTO_INCREMENT for table `student_parents`
--
ALTER TABLE `student_parents`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=55;

--
-- AUTO_INCREMENT for table `subjects`
--
ALTER TABLE `subjects`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=29;

--
-- AUTO_INCREMENT for table `teachers`
--
ALTER TABLE `teachers`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

--
-- AUTO_INCREMENT for table `teacher_assignments`
--
ALTER TABLE `teacher_assignments`
  MODIFY `id` int(9) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=30;

--
-- AUTO_INCREMENT for table `teacher_assignment_class_subject`
--
ALTER TABLE `teacher_assignment_class_subject`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=198;

--
-- AUTO_INCREMENT for table `terms`
--
ALTER TABLE `terms`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

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

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

--
-- Constraints for dumped tables
--

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

--
-- Constraints for table `assessment_components`
--
ALTER TABLE `assessment_components`
  ADD CONSTRAINT `assessment_components_assessment_section_id_foreign` FOREIGN KEY (`assessment_section_id`) REFERENCES `assessment_sections` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `assessment_modules`
--
ALTER TABLE `assessment_modules`
  ADD CONSTRAINT `assessment_modules_department_id_foreign` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `assessment_sections`
--
ALTER TABLE `assessment_sections`
  ADD CONSTRAINT `assessment_sections_assessment_module_id_foreign` FOREIGN KEY (`assessment_module_id`) REFERENCES `assessment_modules` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `attendance_records`
--
ALTER TABLE `attendance_records`
  ADD CONSTRAINT `attendance_records_academic_year_id_foreign` FOREIGN KEY (`academic_year_id`) REFERENCES `academic_years` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `attendance_records_class_id_foreign` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `attendance_records_house_id_foreign` FOREIGN KEY (`house_id`) REFERENCES `houses` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `attendance_records_student_id_foreign` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `attendance_records_term_id_foreign` FOREIGN KEY (`term_id`) REFERENCES `terms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `classes`
--
ALTER TABLE `classes`
  ADD CONSTRAINT `classes_department_id_foreign` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `class_subjects`
--
ALTER TABLE `class_subjects`
  ADD CONSTRAINT `class_subjects_class_id_foreign` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `class_subjects_subject_id_foreign` FOREIGN KEY (`subject_id`) REFERENCES `subjects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `enrollments`
--
ALTER TABLE `enrollments`
  ADD CONSTRAINT `enrollments_academic_year_id_foreign` FOREIGN KEY (`academic_year_id`) REFERENCES `academic_years` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enrollments_class_id_foreign` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enrollments_department_id_foreign` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enrollments_house_id_foreign` FOREIGN KEY (`house_id`) REFERENCES `houses` (`id`) ON DELETE CASCADE ON UPDATE SET NULL,
  ADD CONSTRAINT `enrollments_student_id_foreign` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `enrollments_term_id_foreign` FOREIGN KEY (`term_id`) REFERENCES `terms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `fee_bands`
--
ALTER TABLE `fee_bands`
  ADD CONSTRAINT `fee_bands_ibfk_1` FOREIGN KEY (`fee_system_id`) REFERENCES `fee_systems` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `fee_entries`
--
ALTER TABLE `fee_entries`
  ADD CONSTRAINT `fk_fee_entries_academic_years` FOREIGN KEY (`academic_year_id`) REFERENCES `academic_years` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_fee_entries_classes` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_fee_entries_students` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_fee_entries_terms` FOREIGN KEY (`term_id`) REFERENCES `terms` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `grading_bands`
--
ALTER TABLE `grading_bands`
  ADD CONSTRAINT `grading_bands_grading_system_id_foreign` FOREIGN KEY (`grading_system_id`) REFERENCES `grading_systems` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `grading_systems`
--
ALTER TABLE `grading_systems`
  ADD CONSTRAINT `grading_systems_department_id_foreign` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE SET NULL;

--
-- Constraints for table `promotion_records`
--
ALTER TABLE `promotion_records`
  ADD CONSTRAINT `promotion_records_from_class_id_foreign` FOREIGN KEY (`from_class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `promotion_records_promoted_by_foreign` FOREIGN KEY (`promoted_by`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE SET NULL,
  ADD CONSTRAINT `promotion_records_student_id_foreign` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `promotion_records_to_class_id_foreign` FOREIGN KEY (`to_class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `score_conversions`
--
ALTER TABLE `score_conversions`
  ADD CONSTRAINT `score_conversions_department_id_foreign` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE SET NULL;

--
-- Constraints for table `settings`
--
ALTER TABLE `settings`
  ADD CONSTRAINT `settings_current_academic_year_id_foreign` FOREIGN KEY (`current_academic_year_id`) REFERENCES `academic_years` (`id`) ON DELETE CASCADE ON UPDATE SET NULL,
  ADD CONSTRAINT `settings_current_term_id_foreign` FOREIGN KEY (`current_term_id`) REFERENCES `terms` (`id`) ON DELETE CASCADE ON UPDATE SET NULL;

--
-- Constraints for table `students`
--
ALTER TABLE `students`
  ADD CONSTRAINT `fk_students_class_id` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_students_department_id` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON UPDATE CASCADE,
  ADD CONSTRAINT `students_house_id_foreign` FOREIGN KEY (`house_id`) REFERENCES `houses` (`id`) ON DELETE CASCADE ON UPDATE SET NULL;

--
-- Constraints for table `student_fee_options`
--
ALTER TABLE `student_fee_options`
  ADD CONSTRAINT `fk_sfo_ay` FOREIGN KEY (`academic_year_id`) REFERENCES `academic_years` (`id`) ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_sfo_cat` FOREIGN KEY (`fees_category_id`) REFERENCES `fees_categories` (`id`) ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_sfo_class` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_sfo_student` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_sfo_term` FOREIGN KEY (`term_id`) REFERENCES `terms` (`id`) ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_sfo_user` FOREIGN KEY (`assigned_by`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;

--
-- Constraints for table `student_parents`
--
ALTER TABLE `student_parents`
  ADD CONSTRAINT `student_parents_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `parents` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `student_parents_student_id_foreign` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `subjects`
--
ALTER TABLE `subjects`
  ADD CONSTRAINT `subjects_department_id_foreign` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

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

--
-- Constraints for table `teacher_assignments`
--
ALTER TABLE `teacher_assignments`
  ADD CONSTRAINT `teacher_assignments_academic_year_id_foreign` FOREIGN KEY (`academic_year_id`) REFERENCES `academic_years` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `teacher_assignments_department_id_foreign` FOREIGN KEY (`department_id`) REFERENCES `departments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `teacher_assignments_teacher_id_foreign` FOREIGN KEY (`teacher_id`) REFERENCES `teachers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `teacher_assignments_term_id_foreign` FOREIGN KEY (`term_id`) REFERENCES `terms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `teacher_assignment_class_subject`
--
ALTER TABLE `teacher_assignment_class_subject`
  ADD CONSTRAINT `teacher_assignment_class_subject_class_id_foreign` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `teacher_assignment_class_subject_subject_id_foreign` FOREIGN KEY (`subject_id`) REFERENCES `subjects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `teacher_assignment_class_subject_teacher_assignment_id_foreign` FOREIGN KEY (`teacher_assignment_id`) REFERENCES `teacher_assignments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `timetables`
--
ALTER TABLE `timetables`
  ADD CONSTRAINT `timetables_academic_year_id_foreign` FOREIGN KEY (`academic_year_id`) REFERENCES `academic_years` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `timetables_class_id_foreign` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `timetables_house_id_foreign` FOREIGN KEY (`house_id`) REFERENCES `houses` (`id`) ON DELETE CASCADE ON UPDATE SET NULL,
  ADD CONSTRAINT `timetables_subject_id_foreign` FOREIGN KEY (`subject_id`) REFERENCES `subjects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `timetables_teacher_id_foreign` FOREIGN KEY (`teacher_id`) REFERENCES `teachers` (`id`) ON DELETE CASCADE ON UPDATE SET NULL,
  ADD CONSTRAINT `timetables_term_id_foreign` FOREIGN KEY (`term_id`) REFERENCES `terms` (`id`) ON DELETE CASCADE ON UPDATE SET NULL;

--
-- Constraints for table `user_roles`
--
ALTER TABLE `user_roles`
  ADD CONSTRAINT `user_roles_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `user_roles_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;

