Spaces:
Sleeping
Sleeping
| -- Migration 006: Code Fixing Challenges (Blue Team) | |
| -- Creates the table for code-fixing challenges where trainees fix vulnerable code | |
| CREATE TABLE IF NOT EXISTS public.code_fixing_challenges ( | |
| id uuid PRIMARY KEY DEFAULT gen_random_uuid(), | |
| team_role text NOT NULL DEFAULT 'blue' CHECK (team_role IN ('blue')), | |
| language text NOT NULL CHECK (language IN ('C++','JAVA','PYTHON','JAVASCRIPT','PHP','RUST')), | |
| module text NOT NULL, | |
| title text NOT NULL, | |
| story text NOT NULL, | |
| task_outline text NOT NULL, | |
| vulnerable_code text NOT NULL, | |
| vulnerability_type text NOT NULL, | |
| vulnerability_description text NOT NULL, | |
| hints jsonb DEFAULT '[]'::jsonb, | |
| difficulty text CHECK (difficulty IN ('مبتدئ','متوسط','قوي')), | |
| xp_reward integer DEFAULT 150, | |
| created_at timestamptz DEFAULT now() | |
| ); | |
| -- Indexes for fast pool queries | |
| CREATE INDEX IF NOT EXISTS idx_code_fixing_team_lang ON public.code_fixing_challenges(team_role, language); | |
| CREATE INDEX IF NOT EXISTS idx_code_fixing_difficulty ON public.code_fixing_challenges(difficulty); | |
| -- RLS: open read for anon (same pattern as other challenge tables) | |
| ALTER TABLE public.code_fixing_challenges ENABLE ROW LEVEL SECURITY; | |
| CREATE POLICY "Open read for anon" ON public.code_fixing_challenges | |
| FOR SELECT | |
| USING (true); | |