-- Artefactos equipables del avatar. El "placeholder" visual es un emoji hasta la pasada de diseno real.

create table public.artifacts (
  code text primary key,
  slot text not null check (slot in ('accesorio', 'fondo', 'mascota')),
  name text not null,
  description text not null,
  emoji text not null
);

create table public.user_artifacts (
  user_id uuid not null references auth.users (id) on delete cascade,
  artifact_code text not null references public.artifacts (code),
  unlocked_at timestamptz not null default now(),
  primary key (user_id, artifact_code)
);

create table public.avatar_equipment (
  user_id uuid not null,
  slot text not null,
  artifact_code text not null references public.artifacts (code),
  equipped_at timestamptz not null default now(),
  primary key (user_id, slot)
);

alter table public.artifacts enable row level security;
alter table public.user_artifacts enable row level security;
alter table public.avatar_equipment enable row level security;

create policy "artifacts: authenticated read" on public.artifacts
  for select using (auth.role() = 'authenticated');

create policy "user_artifacts: owner full access" on public.user_artifacts
  for all using (auth.uid() = user_id) with check (auth.uid() = user_id);

create policy "avatar_equipment: owner full access" on public.avatar_equipment
  for all using (auth.uid() = user_id) with check (auth.uid() = user_id);

insert into public.artifacts (code, slot, name, description, emoji) values
  ('gafas_sol', 'accesorio', 'Gafas de sol', 'Desbloqueado al llegar a nivel 3.', '🕶️'),
  ('cinturon', 'accesorio', 'Cinturon de fuerza', 'Desbloqueado al llegar a nivel 5.', '🥋'),
  ('corona', 'accesorio', 'Corona Colossus', 'Desbloqueado al llegar a nivel 10.', '👑'),
  ('fondo_fuego', 'fondo', 'Aura de fuego', 'Desbloqueado con la insignia Quema grasa.', '🔥'),
  ('fondo_rayo', 'fondo', 'Aura electrica', 'Desbloqueado con la insignia Ganancia muscular.', '⚡'),
  ('mascota_perro', 'mascota', 'Compañero fiel', 'Desbloqueado con la insignia Constancia.', '🐕'),
  ('mascota_leon', 'mascota', 'Leon de gimnasio', 'Desbloqueado con la insignia Habito de hierro.', '🦁');
