-- Create expense_categories table
CREATE TABLE IF NOT EXISTS `expense_categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `description` text DEFAULT NULL,
  `status` enum('active','inactive') 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`),
  UNIQUE KEY `unique_category_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Insert default expense categories
INSERT INTO `expense_categories ` (`name`, `description`, `status`, `created_at`, `updated_at`) VALUES
('শিক্ষক বেতন', 'শিক্ষকদের মাসিক বেতন', 'active', NOW(), NOW()),
('কর্মচারী বেতন', 'অন্যান্য কর্মচারীদের মাসিক বেতন', 'active', NOW(), NOW()),
('বিদ্যালয় ভবন ভাড়া', 'বিদ্যালয় ভবনের মাসিক ভাড়া', 'active', NOW(), NOW()),
('যন্ত্রপাতি', 'বিদ্যালয়ের যন্ত্রপাতি ক্রয়', 'active', NOW(), NOW()),
('বিদ্যুৎ বিল', 'বিদ্যুৎ বিল পরিশোধ', 'active', NOW(), NOW()),
('পানি বিল', 'পানি বিল পরিশোধ', 'active', NOW(), NOW()),
('ইন্টারনেট বিল', 'ইন্টারনেট সেবা বিল', 'active', NOW(), NOW()),
('মেরামত ও মংগজ', 'বিদ্যালয় ভবন ও সরঞ্জামের মেরামত', 'active', NOW(), NOW()),
('প্রশাসনিক খরচ', 'প্রশাসনিক কাজে খরচ', 'active', NOW(), NOW()),
('অন্যান্য', 'অন্যান্য খরচ', 'active', NOW(), NOW());

-- Create expenses table
CREATE TABLE IF NOT EXISTS `expenses` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_id` int(11) NOT NULL,
  `title` varchar(200) NOT NULL,
  `description` text DEFAULT NULL,
  `amount` decimal(10,2) NOT NULL,
  `expense_date` date NOT NULL,
  `payment_method` varchar(50) DEFAULT 'cash',
  `receipt_no` varchar(100) DEFAULT NULL,
  `created_by` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `category_id` (`category_id`),
  KEY `expense_date` (`expense_date`),
  KEY `created_by` (`created_by`),
  CONSTRAINT `expenses_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `expense_categories` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE,
  CONSTRAINT `expenses_ibfk_2` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Insert some sample expenses
INSERT INTO `expenses` (`category_id`, `title`, `description`, `amount`, `expense_date`, `payment_method`, `receipt_no`, `created_by`, `created_at`, `updated_at`) VALUES
(1, 'আগস্ট ২০২৪ মাসিক বেতন', 'শিক্ষকদের আগস্ট ২০২৪ মাসিক বেতন', 120000.00, '2024-08-30', 'bank_transfer', 'SAL-202408-001', 1, NOW(), NOW()),
(5, 'জুলাই ২০২৪ বিদ্যুৎ বিল', 'জুলাই ২০২৪ মাসের বিদ্যুৎ বিল', 15000.00, '2024-08-05', 'cash', 'EB-202408-001', 1, NOW(), NOW()),
(4, 'কম্পিউটার কেবল ক্রয়', 'কম্পিউটার ল্যাবের জন্য কেবল ক্রয়', 8500.00, '2024-08-15', 'cash', 'EQP-202408-001', 1, NOW(), NOW());