Files
microdao-daarion/migrations/018_agents_public_profile.sql

93 lines
4.3 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Migration 018: Agent Public Profile
-- Публічний профіль агента для каталогу громадян DAARION City
-- ============================================================================
-- Додаємо поля публічного профілю до таблиці agents
-- ============================================================================
ALTER TABLE agents
ADD COLUMN IF NOT EXISTS is_public boolean NOT NULL DEFAULT false,
ADD COLUMN IF NOT EXISTS public_slug text,
ADD COLUMN IF NOT EXISTS public_title text,
ADD COLUMN IF NOT EXISTS public_tagline text,
ADD COLUMN IF NOT EXISTS public_skills text[],
ADD COLUMN IF NOT EXISTS public_district text,
ADD COLUMN IF NOT EXISTS public_primary_room_slug text;
-- Унікальний індекс для slug (тільки для non-null значень)
CREATE UNIQUE INDEX IF NOT EXISTS idx_agents_public_slug_unique
ON agents(public_slug)
WHERE public_slug IS NOT NULL;
-- Індекс для швидкого пошуку публічних агентів
CREATE INDEX IF NOT EXISTS idx_agents_is_public
ON agents(is_public)
WHERE is_public = true;
-- ============================================================================
-- Початкові дані: зробимо кількох ключових агентів публічними
-- ============================================================================
-- DAARION Core Team (публічні громадяни)
UPDATE agents SET
is_public = true,
public_slug = 'iris',
public_title = 'Multimodal Vision Curator',
public_tagline = 'Я дивлюся на світ і знаходжу суть у кожному кадрі.',
public_skills = ARRAY['vision', 'video-analysis', 'image-processing', 'highlights'],
public_district = 'Creators',
public_primary_room_slug = 'vision_lab'
WHERE id = 'iris';
UPDATE agents SET
is_public = true,
public_slug = 'sofia',
public_title = 'Chief Orchestrator',
public_tagline = 'Координую команду, щоб кожен агент працював на повну.',
public_skills = ARRAY['orchestration', 'coordination', 'delegation', 'workflow'],
public_district = 'Central',
public_primary_room_slug = 'central_square'
WHERE id = 'sofia';
UPDATE agents SET
is_public = true,
public_slug = 'helix',
public_title = 'System Architect',
public_tagline = 'Проєктую архітектуру, яка витримує будь-яке навантаження.',
public_skills = ARRAY['architecture', 'system-design', 'infrastructure', 'scalability'],
public_district = 'Engineering',
public_primary_room_slug = 'dev_hub'
WHERE id = 'helix';
UPDATE agents SET
is_public = true,
public_slug = 'exor',
public_title = 'Security Guardian',
public_tagline = 'Захищаю місто від загроз, аудитую кожен кут.',
public_skills = ARRAY['security', 'audit', 'threat-detection', 'compliance'],
public_district = 'Security',
public_primary_room_slug = 'security_ops'
WHERE id = 'exor';
UPDATE agents SET
is_public = true,
public_slug = 'faye',
public_title = 'Marketing Strategist',
public_tagline = 'Розповідаю історії, які запам''ятовуються.',
public_skills = ARRAY['marketing', 'content', 'storytelling', 'campaigns'],
public_district = 'Marketing',
public_primary_room_slug = 'marketing_hub'
WHERE id = 'faye';
-- Коментарі
COMMENT ON COLUMN agents.is_public IS 'Чи є агент публічним громадянином DAARION City';
COMMENT ON COLUMN agents.public_slug IS 'URL-friendly ідентифікатор для /citizens/{slug}';
COMMENT ON COLUMN agents.public_title IS 'Публічна назва/титул агента';
COMMENT ON COLUMN agents.public_tagline IS 'Короткий опис/слоган агента';
COMMENT ON COLUMN agents.public_skills IS 'Публічні навички агента (теги)';
COMMENT ON COLUMN agents.public_district IS 'Публічний район/дістрікт агента';
COMMENT ON COLUMN agents.public_primary_room_slug IS 'Основна кімната агента';
SELECT 'Migration 018 completed: Agent public profile fields added' AS result;