INSERT INTO notifications (user_id, type, level, channel, title, message, payload, is_read, created_at) VALUES
-- Student (user_id=10) notifications
(10, 'course_created',         'info',    'in_app', 'New Course Available',        'A new course "Algebra Fundamentals" has been added. Check it out!',                '{"course_title": "Algebra Fundamentals", "category": "Mathematics"}',            false, now() - interval '30 days'),
(10, 'course_created',         'info',    'in_app', 'New Course Available',        'A new course "English Grammar 101" has been added. Check it out!',                 '{"course_title": "English Grammar 101", "category": "Language"}',                false, now() - interval '25 days'),
(10, 'sub_course_created',     'info',    'in_app', 'New Content Available',       'A new sub-course "Linear Equations" has been added.',                              '{"sub_course_title": "Linear Equations", "course": "Algebra Fundamentals"}',     false, now() - interval '24 days'),
(10, 'video_added',            'info',    'in_app', 'New Video Available',         'A new video "Introduction to Variables" has been added.',                          '{"video_title": "Introduction to Variables", "sub_course": "Linear Equations"}', false, now() - interval '23 days'),
(10, 'payment_verified',       'success', 'in_app', 'Payment Successful',         'Your payment has been verified successfully. Your subscription is now active.',    '{"plan": "Premium Monthly", "amount": 500}',                                     true, now() - interval '20 days'),
(10, 'subscription_activated', 'success', 'in_app', 'Subscription Activated',     'Your Premium Monthly subscription is now active until March 20, 2026.',            '{"plan": "Premium Monthly", "expires": "2026-03-20"}',                            true, now() - interval '20 days'),
(10, 'knowledge_level_update', 'info',    'in_app', 'Knowledge Level Updated',    'Your knowledge level has been updated to: Intermediate',                           '{"previous_level": "Beginner", "new_level": "Intermediate"}',                    false, now() - interval '15 days'),
(10, 'issue_status_updated',   'info',    'in_app', 'Issue Status Updated',       'Your issue "Video not loading on mobile" has been updated to: in_progress',        '{"issue_id": 1, "subject": "Video not loading on mobile", "status": "in_progress"}', true, now() - interval '12 days'),
(10, 'issue_status_updated',   'success', 'in_app', 'Issue Status Updated',       'Your issue "Cannot change profile picture" has been updated to: resolved',         '{"issue_id": 3, "subject": "Cannot change profile picture", "status": "resolved"}',  true, now() - interval '10 days'),
(10, 'course_enrolled',        'success', 'in_app', 'Course Enrolled',            'You have been enrolled in "Biology 101".',                                         '{"course_title": "Biology 101"}',                                                false, now() - interval '8 days'),
(10, 'assessment_assigned',    'info',    'in_app', 'New Assessment Available',   'A new assessment is available for "Algebra Fundamentals".',                         '{"course": "Algebra Fundamentals", "assessment_type": "quiz"}',                  false, now() - interval '5 days'),
(10, 'announcement',           'info',    'in_app', 'Platform Maintenance',       'Scheduled maintenance on Feb 15, 2026 from 2:00 AM - 4:00 AM EAT.',               '{"scheduled_at": "2026-02-15T02:00:00+03:00", "duration_hours": 2}',             false, now() - interval '2 days'),
(10, 'video_added',            'info',    'in_app', 'New Video Available',         'A new video "Solving Quadratic Equations" has been added.',                        '{"video_title": "Solving Quadratic Equations", "sub_course": "Quadratics"}',     false, now() - interval '1 day'),

-- Admin (user_id=12) notifications
(12, 'issue_created',          'info',    'in_app', 'New Issue Reported',          'A new issue "Video not loading on mobile" has been reported.',                     '{"issue_id": 1, "subject": "Video not loading on mobile", "reporter_id": 10}',         false, now() - interval '14 days'),
(12, 'issue_created',          'info',    'in_app', 'New Issue Reported',          'A new issue "Payment confirmation not received" has been reported.',               '{"issue_id": 2, "subject": "Payment confirmation not received", "reporter_id": 10}',   false, now() - interval '10 days'),
(12, 'issue_created',          'info',    'in_app', 'New Issue Reported',          'A new issue "Quiz results not saving" has been reported.',                         '{"issue_id": 5, "subject": "Quiz results not saving", "reporter_id": 10}',             false, now() - interval '5 days'),
(12, 'user_deleted',           'warning', 'in_app', 'User Deleted',               'User ID 99 has been deleted.',                                                     '{"deleted_user_id": 99, "deleted_by": 12}',                                            true, now() - interval '18 days'),
(12, 'admin_created',          'info',    'in_app', 'New Admin Created',           'A new admin account has been created for admin@yimaru.com.',                       '{"admin_email": "admin@yimaru.com"}',                                                  true, now() - interval '28 days'),
(12, 'team_member_created',    'info',    'in_app', 'New Team Member',             'A new team member has been added.',                                                '{"member_email": "support@yimaru.com", "role": "support"}',                            true, now() - interval '26 days'),
(12, 'system_alert',           'warning', 'in_app', 'High Error Rate Detected',   'The notification delivery failure rate exceeded 5% in the last hour.',             '{"failure_rate": 5.2, "window": "1h"}',                                                false, now() - interval '3 days'),
(12, 'announcement',           'info',    'in_app', 'New Student Registrations',   '15 new students registered this week.',                                            '{"count": 15, "period": "weekly"}',                                                    false, now() - interval '1 day')
ON CONFLICT DO NOTHING;
