USE null_terminal;

SET @admin_id := (SELECT id FROM users WHERE username = 'admin' LIMIT 1);

INSERT INTO projects (slug, name, description, instructions_format, instructions_body, created_by)
VALUES ('web-recon', 'Web Recon Sprint', 'Practice OSINT/recon workflows', 'md',
'# Web Recon Sprint\n\n## Goal\nEnumerate subdomains and check SSL posture for the target domain assigned by your mentor.\n\n## Steps\n1. `intel crtsh domain <target>`\n2. `intel sslabs domain <target>`\n3. Log findings with `task edit <id> <notes>`\n4. Mark complete with `task done <id>`\n', @admin_id)
ON DUPLICATE KEY UPDATE created_by = COALESCE(created_by, VALUES(created_by));

SET @proj := (SELECT id FROM projects WHERE slug = 'web-recon');

INSERT INTO project_members (project_id, user_id, can_edit)
SELECT @proj, @admin_id, 1
WHERE @admin_id IS NOT NULL
  AND NOT EXISTS (
	SELECT 1 FROM project_members WHERE project_id = @proj AND user_id = @admin_id
);

INSERT INTO tasks (project_id, title, details, status)
SELECT @proj, 'Enumerate subdomains via crt.sh', 'Use intel crtsh domain', 'pending'
WHERE NOT EXISTS (SELECT 1 FROM tasks WHERE project_id = @proj AND title = 'Enumerate subdomains via crt.sh');

INSERT INTO tasks (project_id, title, details, status)
SELECT @proj, 'Check SSL Labs grade', 'Use intel sslabs domain', 'pending'
WHERE NOT EXISTS (SELECT 1 FROM tasks WHERE project_id = @proj AND title = 'Check SSL Labs grade');

INSERT INTO tasks (project_id, title, details, status)
SELECT @proj, 'Write recon summary', 'Summarize findings in task notes', 'pending'
WHERE NOT EXISTS (SELECT 1 FROM tasks WHERE project_id = @proj AND title = 'Write recon summary');

INSERT INTO challenges (title, description, category, points, starts_at, ends_at, prize, created_by)
SELECT 'OSINT Sprint #1', 'Find the 3 hidden flags using only public OSINT sources. First correct + fastest wins.',
'osint', 250, NOW(), DATE_ADD(NOW(), INTERVAL 3 DAY), '$50 voucher + Legend rank boost', @admin_id
WHERE NOT EXISTS (SELECT 1 FROM challenges WHERE title = 'OSINT Sprint #1');
