-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Jul 07, 2026 at 07:01 AM
-- Server version: 8.0.41
-- PHP Version: 8.0.30

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

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

--
-- Database: `erp_system`
--

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

--
-- Table structure for table `access_requests`
--

CREATE TABLE IF NOT EXISTS `access_requests` (
  `id` int NOT NULL AUTO_INCREMENT,
  `first_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
  `last_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
  `email` varchar(150) COLLATE utf8mb4_general_ci NOT NULL,
  `mobile` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `organization_id` int DEFAULT NULL,
  `organization_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `requested_role` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
  `remarks` text COLLATE utf8mb4_general_ci,
  `status` enum('pending','approved','rejected') COLLATE utf8mb4_general_ci DEFAULT 'pending',
  `approved_by` int DEFAULT NULL,
  `approved_at` datetime DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `access_requests`
--

INSERT IGNORE INTO `access_requests` (`id`, `first_name`, `last_name`, `email`, `mobile`, `organization_id`, `organization_name`, `requested_role`, `remarks`, `status`, `approved_by`, `approved_at`, `created_at`) VALUES
(1, 'Prajwal', 'Patil', 'prajwal@gmail.com', '9876543210', 1, 'VIIT', 'Faculty', 'Need ERP Access', 'approved', 1, '2026-06-08 13:26:14', '2026-06-08 05:44:10'),
(2, 'Test', 'Faculty', 'testfaculty@gmail.com', '9876543210', NULL, 'VIIT', 'Faculty', 'Need ERP Access', 'pending', NULL, NULL, '2026-06-11 08:24:30');

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

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

CREATE TABLE IF NOT EXISTS `departments` (
  `id` int NOT NULL AUTO_INCREMENT,
  `organization_id` int NOT NULL,
  `department_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `department_code` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `status` enum('active','inactive') COLLATE utf8mb4_general_ci DEFAULT 'active',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `organization_id` (`organization_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

--
-- Table structure for table `login_history`
--

CREATE TABLE IF NOT EXISTS `login_history` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `user_id` int NOT NULL,
  `login_time` datetime NOT NULL,
  `logout_time` datetime DEFAULT NULL,
  `ip_address` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `device_info` text COLLATE utf8mb4_general_ci,
  `status` enum('success','failed') COLLATE utf8mb4_general_ci DEFAULT 'success',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_login_time` (`login_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `login_history`
--

INSERT IGNORE INTO `login_history` (`id`, `user_id`, `login_time`, `logout_time`, `ip_address`, `device_info`, `status`, `created_at`) VALUES
(1, 2, '2026-06-16 12:52:46', NULL, '::1', 'PostmanRuntime/7.54.0', 'success', '2026-06-16 07:22:46'),
(2, 2, '2026-06-17 21:41:39', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-06-17 16:11:39'),
(3, 2, '2026-06-17 23:54:31', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-06-17 18:24:31'),
(4, 2, '2026-06-18 11:10:06', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-06-18 05:40:06'),
(5, 2, '2026-06-18 11:47:01', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-06-18 06:17:01'),
(6, 2, '2026-06-18 11:56:24', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-06-18 06:26:24'),
(7, 2, '2026-06-18 21:41:03', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.124.2 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-18 16:11:03'),
(8, 2, '2026-06-18 23:04:42', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-18 17:34:42'),
(9, 2, '2026-06-19 18:42:38', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-19 13:12:38'),
(10, 2, '2026-06-19 19:32:48', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-19 14:02:48'),
(11, 2, '2026-06-19 19:43:16', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-19 14:13:16'),
(12, 2, '2026-06-22 10:52:19', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-22 05:22:19'),
(13, 2, '2026-06-22 12:31:42', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-22 07:01:42'),
(14, 2, '2026-06-22 16:30:48', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-22 11:00:48'),
(15, 2, '2026-06-22 17:27:12', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-06-22 11:57:12'),
(16, 2, '2026-06-23 12:33:34', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-23 07:03:34'),
(17, 2, '2026-06-23 14:59:03', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-23 09:29:03'),
(18, 2, '2026-06-23 16:04:49', NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-23 10:34:49'),
(19, 2, '2026-06-24 15:01:05', NULL, '127.0.0.1', 'PostmanRuntime/7.51.1', 'success', '2026-06-24 09:31:05'),
(20, 2, '2026-06-24 15:52:34', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-24 10:22:34'),
(21, 2, '2026-06-24 19:00:00', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-24 13:30:00'),
(22, 2, '2026-06-24 19:23:45', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-24 13:53:45'),
(23, 2, '2026-06-24 23:09:01', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-24 17:39:01'),
(24, 2, '2026-06-24 23:17:13', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-24 17:47:13'),
(25, 2, '2026-06-25 02:33:40', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-24 21:03:40'),
(26, 2, '2026-06-25 09:53:34', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-25 04:23:34'),
(27, 2, '2026-06-25 10:15:36', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-25 04:45:36'),
(28, 2, '2026-06-25 10:27:09', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-25 04:57:09'),
(29, 2, '2026-06-25 14:36:50', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-25 09:06:50'),
(30, 2, '2026-06-25 19:32:32', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-25 14:02:32'),
(31, 2, '2026-06-30 11:06:43', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-06-30 05:36:43'),
(32, 2, '2026-07-02 13:29:56', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-07-02 07:59:56'),
(33, 2, '2026-07-02 13:32:28', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-07-02 08:02:28'),
(34, 2, '2026-07-02 14:29:38', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-07-02 08:59:38'),
(35, 2, '2026-07-03 10:54:47', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.125.1 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-07-03 05:24:47'),
(36, 2, '2026-07-03 10:57:56', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-07-03 05:27:56'),
(37, 2, '2026-07-03 12:40:39', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36', 'success', '2026-07-03 07:10:39'),
(38, 2, '2026-07-07 10:14:53', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.127.0 Chrome/148.0.7778.97 Electron/42.2.0 Safari/537.36', 'success', '2026-07-07 04:44:53');

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

--
-- Table structure for table `organizations`
--

CREATE TABLE IF NOT EXISTS `organizations` (
  `id` int NOT NULL AUTO_INCREMENT,
  `organization_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `organization_code` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
  `acronym` varchar(20) COLLATE utf8mb4_general_ci DEFAULT '',
  `email` varchar(150) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `mobile` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `address` text COLLATE utf8mb4_general_ci,
  `status` enum('active','inactive') COLLATE utf8mb4_general_ci DEFAULT 'active',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `organizations`
--

INSERT IGNORE INTO `organizations` (`id`, `organization_name`, `organization_code`, `acronym`, `email`, `mobile`, `address`, `status`, `created_at`, `updated_at`) VALUES
(1, 'ERP System', 'VIIT001', 'ERP', 'superadmin@erp.com', '9999999999', NULL, 'active', '2026-05-30 08:05:15', '2026-06-08 07:07:27'),
(2, 'PCCOE', 'PCCOE001', '', 'admin@pccoe.com', '9876543210', 'Pune', 'active', '2026-06-16 08:56:28', '2026-06-16 08:56:28'),
(4, 'AP college', 'AP002', 'AP002', 'ap@gmail.com', '0987654321', 'pune', 'inactive', '2026-06-24 11:36:25', '2026-06-25 09:29:08'),
(5, 'Test College', 'T003', 'T003', 'test@gmail.com', '9876543210', 'Nagar', 'active', '2026-06-24 13:05:17', '2026-06-25 10:07:21');

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

--
-- Table structure for table `services`
--

CREATE TABLE IF NOT EXISTS `services` (
  `id` int NOT NULL AUTO_INCREMENT,
  `service_name` varchar(100) NOT NULL,
  `service_code` varchar(30) NOT NULL,
  `status` enum('active','inactive') DEFAULT 'active',
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `services`
--

INSERT IGNORE INTO `services` (`id`, `service_name`, `service_code`, `status`, `created_at`) VALUES
(2, 'Library', 'LIBRARY', 'active', '2026-06-23 15:40:45'),
(3, 'Fees Management', 'FEES', 'active', '2026-06-23 15:40:45'),
(4, 'Examination', 'EXAM', 'inactive', '2026-06-23 15:40:45'),
(5, 'Payroll', 'PAYROLL', 'active', '2026-06-23 15:40:45'),
(6, 'Hostel Management', 'HOSTEL', 'active', '2026-06-23 15:40:45'),
(7, 'Transport', 'TRANSPORT', 'active', '2026-06-23 15:40:45'),
(8, 'HRMS', 'HRMS', 'active', '2026-06-23 15:40:45'),
(9, 'Inventory', 'INVENTORY', 'active', '2026-06-23 15:40:45'),
(12, 'Attendance', 'ATTENDANCE', 'active', '2026-06-30 08:50:11');

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

--
-- Table structure for table `organization_services`
--

CREATE TABLE IF NOT EXISTS `organization_services` (
  `id` int NOT NULL AUTO_INCREMENT,
  `organization_id` int NOT NULL,
  `service_id` int NOT NULL,
  `status` enum('active','inactive') DEFAULT 'active',
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `organization_id` (`organization_id`),
  KEY `service_id` (`service_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `organization_services`
--

INSERT IGNORE INTO `organization_services` (`id`, `organization_id`, `service_id`, `status`, `created_at`) VALUES
(46, 1, 3, 'active', '2026-07-02 09:27:47'),
(48, 1, 2, 'active', '2026-07-02 09:28:02'),
(49, 5, 2, 'active', '2026-07-02 09:28:02'),
(57, 5, 6, 'active', '2026-07-02 09:29:08'),
(58, 4, 6, 'active', '2026-07-02 09:29:08'),
(59, 2, 6, 'active', '2026-07-02 09:29:08'),
(60, 1, 6, 'active', '2026-07-02 09:29:08'),
(62, 5, 12, 'active', '2026-07-02 09:30:01'),
(63, 4, 12, 'active', '2026-07-02 09:30:01');

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

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

CREATE TABLE IF NOT EXISTS `roles` (
  `id` int NOT NULL AUTO_INCREMENT,
  `role_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
  `role_code` varchar(20) COLLATE utf8mb4_general_ci NOT NULL,
  `status` enum('active','inactive') COLLATE utf8mb4_general_ci DEFAULT 'active',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

INSERT IGNORE INTO `roles` (`id`, `role_name`, `role_code`, `status`, `created_at`) VALUES
(1, 'Super Admin', 'SUPERADMIN', 'active', '2026-05-30 06:39:08'),
(2, 'Admin', 'ADMIN', 'active', '2026-05-30 06:39:08'),
(3, 'Department Admin', 'DEPTADMIN', 'active', '2026-05-30 06:39:08'),
(4, 'Faculty', 'FACULTY', 'active', '2026-05-30 06:39:08'),
(5, 'Staff', 'STAFF', 'active', '2026-05-30 06:39:08'),
(6, 'Student', 'STUDENT', 'active', '2026-05-30 06:39:08'),
(7, 'Parent', 'PARENT', 'active', '2026-05-30 06:39:08');

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

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

CREATE TABLE IF NOT EXISTS `users` (
  `id` int NOT NULL AUTO_INCREMENT,
  `organization_id` int NOT NULL,
  `department_id` int DEFAULT NULL,
  `role_id` int NOT NULL,
  `login_id` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `full_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `email` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `mobile` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `password` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `is_first_login` tinyint(1) DEFAULT '1',
  `status` enum('active','inactive') COLLATE utf8mb4_general_ci DEFAULT 'active',
  `last_login` datetime DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

INSERT IGNORE INTO `users` (`id`, `organization_id`, `department_id`, `role_id`, `login_id`, `full_name`, `email`, `mobile`, `password`, `is_first_login`, `status`, `last_login`, `created_at`, `updated_at`) VALUES
(2, 1, NULL, 1, 'SUPERADMIN001', 'Super Admin', 'superadmin@erp.com', NULL, '$2y$10$XuNKLcEPlsdx3.2aobazweTSEBuX0.CDCyNMA81RJ1lu7k/dj4XMm', 0, 'active', NULL, '2026-05-30 08:06:30', '2026-06-16 07:19:46'),
(5, 1, NULL, 4, 'VIIT001-FAC-0001', 'Prajwal Patil', 'prajwal@gmail.com', '9876543210', '$2y$10$OY5zuIDh1tuxrGYmhVQCueP0mLD9CgH1ZG6h6K5aABuvSm3dAjPfe', 1, 'active', NULL, '2026-06-08 07:56:14', '2026-06-08 07:56:14'),
(6, 2, NULL, 2, 'PCCOE001-ADM-0001', 'PCCOE Admin', 'admin@pccoe.com', '9876543210', '$2y$10$YmomA/HDUI6efK.992xoM.mOvtSdWauZEtawWJNOaIe1pW.cjVz1a', 1, 'active', NULL, '2026-06-16 08:56:28', '2026-06-16 08:56:28'),
(8, 4, NULL, 2, 'AP002-ADM-0001', 'AP college Admin', 'ap@gmail.com', '0987654321', '$2y$10$yi0LsvE1vFs9YoOQUATObugZevImzJzTuKUPs3b/KvfWr/qmqu1JG', 1, 'active', NULL, '2026-06-24 11:36:25', '2026-06-24 11:36:25'),
(9, 5, NULL, 2, 'T003-ADM-0001', 'Test College Admin', 'test@gmail.com', '9876543210', '$2y$10$WdPyzMyJdvg8rDpc9OTILeEiazLmHwLs/S3j2ysK4NunVA6YJDJMq', 1, 'active', NULL, '2026-06-24 13:05:17', '2026-06-24 13:05:17');

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

--
-- Table structure for table `otp_verification`
--

CREATE TABLE IF NOT EXISTS `otp_verification` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` int NOT NULL,
  `otp_code` varchar(10) COLLATE utf8mb4_general_ci NOT NULL,
  `purpose` enum('login','forgot_password') COLLATE utf8mb4_general_ci DEFAULT 'login',
  `expires_at` datetime NOT NULL,
  `is_verified` tinyint(1) DEFAULT '0',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

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

CREATE TABLE IF NOT EXISTS `notifications` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` int DEFAULT NULL,
  `title` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `description` text COLLATE utf8mb4_general_ci,
  `type` varchar(50) COLLATE utf8mb4_general_ci DEFAULT 'info',
  `is_read` tinyint(1) DEFAULT '0',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

--
-- Table structure for table `recent_activities`
--

CREATE TABLE IF NOT EXISTS `recent_activities` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` int DEFAULT NULL,
  `title` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `description` text COLLATE utf8mb4_general_ci,
  `type` varchar(50) COLLATE utf8mb4_general_ci DEFAULT 'general',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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 */;
