CREATE EXTENSION IF NOT EXISTS pgcrypto;

-- ======================================================
-- Global Settings (LMS)
-- ======================================================
INSERT INTO global_settings (key, value)
VALUES
    ('platform_name', 'Yimaru LMS'),
    ('default_language', 'en'),
    ('allow_self_signup', 'true'),
    ('otp_expiry_minutes', '5'),
    ('certificate_enabled', 'true'),
    ('max_courses_per_instructor', '50')
ON CONFLICT (key) DO NOTHING;
-- ======================================================

INSERT INTO users (
    id,
    first_name,
    last_name,
    user_name,
    email,
    phone_number,
    role,
    password,
    age,
    education_level,
    country,
    region,
    knowledge_level,
    nick_name,
    occupation,
    learning_goal,
    language_goal,
    language_challange,
    favoutite_topic,
    initial_assessment_completed,
    email_verified,
    phone_verified,
    status,
    last_login,
    profile_completed,
    profile_picture_url,
    preferred_language,
    created_at,
    updated_at
)
VALUES
(
    1,
    'Sarah',
    'Connor',
    'SarahC',
    'yaredyemane1@gmail.com',
    NULL,
    'SUPER_ADMIN',
    crypt('password@123', gen_salt('bf'))::bytea,
    35,
    'Masters',
    'USA',
    'California',
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    FALSE,
    TRUE,
    FALSE,
    'ACTIVE',
    NULL,
    FALSE,
    NULL,
    'en',
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
),
(
    2,
    'Test',
    'Instructor',
    'InstructorT',
    'instructor@yimaru.com',
    '0988554466',
    'INSTRUCTOR',
    crypt('password@123', gen_salt('bf'))::bytea,
    30,
    'Bachelors',
    'USA',
    'New York',
    NULL,
    NULL,
    'Instructor',
    NULL,
    NULL,
    NULL,
    NULL,
    FALSE,
    TRUE,
    TRUE,
    'ACTIVE',
    NULL,
    FALSE,
    NULL,
    'en',
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
),
(
    3,
    'Demo',
    'Student',
    'DemoS',
    'student@yimaru.com',
    NULL,
    'STUDENT',
    crypt('password@123', gen_salt('bf'))::bytea,
    22,
    'High School',
    'USA',
    'Texas',
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    FALSE,
    TRUE,
    FALSE,
    'ACTIVE',
    NULL,
    FALSE,
    NULL,
    'en',
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
)
ON CONFLICT (id) DO UPDATE
SET first_name = EXCLUDED.first_name,
    last_name = EXCLUDED.last_name,
    user_name = EXCLUDED.user_name,
    email = EXCLUDED.email,
    phone_number = EXCLUDED.phone_number,
    role = EXCLUDED.role,
    password = EXCLUDED.password,
    age = EXCLUDED.age,
    education_level = EXCLUDED.education_level,
    country = EXCLUDED.country,
    region = EXCLUDED.region,
    knowledge_level = EXCLUDED.knowledge_level,
    nick_name = EXCLUDED.nick_name,
    occupation = EXCLUDED.occupation,
    learning_goal = EXCLUDED.learning_goal,
    language_goal = EXCLUDED.language_goal,
    language_challange = EXCLUDED.language_challange,
    favoutite_topic = EXCLUDED.favoutite_topic,
    initial_assessment_completed = EXCLUDED.initial_assessment_completed,
    email_verified = EXCLUDED.email_verified,
    phone_verified = EXCLUDED.phone_verified,
    status = EXCLUDED.status,
    last_login = EXCLUDED.last_login,
    profile_completed = EXCLUDED.profile_completed,
    profile_picture_url = EXCLUDED.profile_picture_url,
    preferred_language = EXCLUDED.preferred_language,
    updated_at = CURRENT_TIMESTAMP;

-- ======================================================
-- Courses
-- ======================================================
-- ======================================================
-- Course Categories
-- ======================================================
INSERT INTO course_categories (
    id,
    name,
    is_active,
    created_at
)
VALUES
    (1, 'Learning English', TRUE, CURRENT_TIMESTAMP),
    (2, 'Other Courses', TRUE, CURRENT_TIMESTAMP)
ON CONFLICT (id) DO NOTHING;

-- ======================================================
-- Notifications (Sample)
-- ======================================================
INSERT INTO notifications (
    user_id,
    type,
    level,
    channel,
    title,
    message,
    created_at
)
VALUES (
    3,
    'course_enrolled',
    'info',
    'in_app',
    'Welcome to your course',
    'You have successfully enrolled in Introduction to Go Programming.',
    CURRENT_TIMESTAMP
);
