CREATE TABLE public.nominations (
  id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
  created_at timestamptz NOT NULL DEFAULT now(),
  nominee_name text NOT NULL CHECK (char_length(nominee_name) BETWEEN 1 AND 200),
  age int NOT NULL CHECK (age BETWEEN 60 AND 120),
  district text NOT NULL CHECK (char_length(district) BETWEEN 1 AND 100),
  nominee_contact text NOT NULL CHECK (char_length(nominee_contact) BETWEEN 1 AND 300),
  category text NOT NULL CHECK (char_length(category) BETWEEN 1 AND 200),
  years int NOT NULL CHECK (years BETWEEN 0 AND 100),
  description text NOT NULL CHECK (char_length(description) BETWEEN 100 AND 10000),
  nominator_name text NOT NULL CHECK (char_length(nominator_name) BETWEEN 1 AND 200),
  nominator_phone text NOT NULL CHECK (char_length(nominator_phone) BETWEEN 5 AND 30),
  nominator_email text NOT NULL CHECK (char_length(nominator_email) BETWEEN 3 AND 255),
  lang text NOT NULL DEFAULT 'si' CHECK (lang IN ('si','en'))
);
GRANT INSERT ON public.nominations TO anon;
GRANT INSERT, SELECT ON public.nominations TO authenticated;
GRANT ALL ON public.nominations TO service_role;
ALTER TABLE public.nominations ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Anyone can submit a nomination" ON public.nominations FOR INSERT TO anon, authenticated WITH CHECK (true);
CREATE POLICY "Organizers can read nominations" ON public.nominations FOR SELECT TO authenticated
  USING (public.has_role(auth.uid(), 'organizer') OR public.has_role(auth.uid(), 'admin'));