-- পাঠ পরিকল্পনা সাইট — ডাটাবেজ স্ট্রাকচার
-- এই ফাইলটা cPanel এর phpMyAdmin এ Import করলেই সব টেবিল তৈরি হয়ে যাবে

CREATE DATABASE IF NOT EXISTS lesson_planner CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE lesson_planner;

-- শিক্ষকদের অ্যাকাউন্ট
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(150) NOT NULL,
    email VARCHAR(150) NOT NULL UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    school_name VARCHAR(200),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- শ্রেণি
CREATE TABLE classes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    sort_order INT DEFAULT 0
) ENGINE=InnoDB;

-- বিষয় (প্রতিটা শ্রেণির সাথে যুক্ত)
CREATE TABLE subjects (
    id INT AUTO_INCREMENT PRIMARY KEY,
    class_id INT NOT NULL,
    name VARCHAR(150) NOT NULL,
    FOREIGN KEY (class_id) REFERENCES classes(id) ON DELETE CASCADE
) ENGINE=InnoDB;

-- অধ্যায় (প্রতিটা বিষয়ের সাথে যুক্ত, শিক্ষকরা নিজেরাও যোগ করতে পারবেন)
CREATE TABLE chapters (
    id INT AUTO_INCREMENT PRIMARY KEY,
    subject_id INT NOT NULL,
    name VARCHAR(200) NOT NULL,
    sequence INT DEFAULT 0,
    added_by_user_id INT NULL,
    FOREIGN KEY (subject_id) REFERENCES subjects(id) ON DELETE CASCADE,
    FOREIGN KEY (added_by_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB;

-- মূল টেবিল: একক পাঠ পরিকল্পনা
CREATE TABLE lesson_plans (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    class_id INT NOT NULL,
    subject_id INT NOT NULL,
    chapter_id INT NULL,
    plan_date DATE,
    teacher_name VARCHAR(150),
    previous_lesson TEXT,
    learning_outcomes TEXT,      -- JSON array হিসেবে সেভ হবে
    materials TEXT,
    prep_text TEXT,
    prep_time VARCHAR(50),
    presentation_steps TEXT,     -- JSON array হিসেবে সেভ হবে
    presentation_time VARCHAR(50),
    evaluation_text TEXT,
    evaluation_time VARCHAR(50),
    homework TEXT,
    exit_line TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    FOREIGN KEY (class_id) REFERENCES classes(id),
    FOREIGN KEY (subject_id) REFERENCES subjects(id),
    FOREIGN KEY (chapter_id) REFERENCES chapters(id) ON DELETE SET NULL
) ENGINE=InnoDB;

-- শুরুর জন্য কিছু শ্রেণি ও বিষয় (উদাহরণ — পরে এডমিন প্যানেল থেকে বাড়ানো/ঠিক করা যাবে)
INSERT INTO classes (name, sort_order) VALUES
('৬ষ্ঠ শ্রেণি', 6),
('৭ম শ্রেণি', 7),
('৮ম শ্রেণি', 8),
('৯ম-১০ম শ্রেণি', 9);

INSERT INTO subjects (class_id, name) VALUES
(1, 'বাংলা'), (1, 'ইংরেজি'), (1, 'গণিত'), (1, 'বিজ্ঞান'),
(2, 'বাংলা'), (2, 'ইংরেজি'), (2, 'গণিত'), (2, 'বিজ্ঞান'),
(3, 'বাংলা'), (3, 'ইংরেজি'), (3, 'গণিত'), (3, 'বিজ্ঞান'),
(4, 'বাংলা'), (4, 'ইংরেজি'), (4, 'গণিত'), (4, 'পদার্থবিজ্ঞান'), (4, 'রসায়ন'), (4, 'জীববিজ্ঞান');
