Files
microdao-daarion/migrations/033_mvp_seed_real_entities.sql
Apple 4ccdb30159 feat: MVP seed real entities (RECOVERY)
- DAIS identities for all core agents
- City governance: DAARWIZZ, DARIO, DARIA
- District leads: SOUL, Helion, GREENFOOD
- District teams: Spirit, Logic, Energia
- Core agents: CLAN, DRUID, EONARCH, YAROMIR
- MicroDAOs: daarion (root), energyunion, greenfood, soul-retreat
- Agent assignments & permissions
- District rooms for SOUL, ENERGYUNION, GREENFOOD
2025-11-30 05:13:30 -08:00

478 lines
23 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 033: MVP Seed Real Entities
-- Purpose: Seed real agents, microDAOs, and assignments for production MVP
-- Date: 2025-11-30
-- Status: MVP Recovery
-- ============================================================================
-- ============================================================================
-- 0. CREATE USERS IF NEEDED (for owner_user_id reference)
-- ============================================================================
-- Ensure admin user exists
INSERT INTO users (id, email, display_name, created_at)
SELECT
'00000000-0000-0000-0000-000000000001'::UUID,
'admin@daarion.xyz',
'DAARION Admin',
NOW()
WHERE NOT EXISTS (SELECT 1 FROM users WHERE email = 'admin@daarion.xyz')
ON CONFLICT (id) DO NOTHING;
-- ============================================================================
-- 1. DAIS IDENTITIES - Core Agents
-- ============================================================================
-- City Governance Agents
INSERT INTO dais_identities (id, did, default_email, trust_level, metadata)
VALUES
('dais-daarwizz', 'did:daarion:daarwizz', 'daarwizz@daarion.city', 'operator', '{"role": "city_mayor", "type": "ai-agent"}'::jsonb),
('dais-dario', 'did:daarion:dario', 'dario@daarion.city', 'operator', '{"role": "city_community", "type": "ai-agent"}'::jsonb),
('dais-daria', 'did:daarion:daria', 'daria@daarion.city', 'operator', '{"role": "city_support", "type": "ai-agent"}'::jsonb)
ON CONFLICT (id) DO UPDATE SET
trust_level = EXCLUDED.trust_level,
metadata = EXCLUDED.metadata;
-- District Lead Agents
INSERT INTO dais_identities (id, did, default_email, trust_level, metadata)
VALUES
('dais-soul', 'did:daarion:soul', 'soul@daarion.city', 'operator', '{"role": "district_lead", "district": "soul-retreat", "type": "ai-agent"}'::jsonb),
('dais-helion', 'did:daarion:helion', 'helion@daarion.city', 'operator', '{"role": "district_lead", "district": "energyunion", "type": "ai-agent"}'::jsonb),
('dais-greenfood', 'did:daarion:greenfood', 'greenfood@daarion.city', 'operator', '{"role": "district_lead", "district": "greenfood", "type": "ai-agent"}'::jsonb)
ON CONFLICT (id) DO UPDATE SET
trust_level = EXCLUDED.trust_level,
metadata = EXCLUDED.metadata;
-- District Support Agents
INSERT INTO dais_identities (id, did, default_email, trust_level, metadata)
VALUES
('dais-spirit', 'did:daarion:spirit', 'spirit@daarion.city', 'verified', '{"role": "guidance_agent", "district": "soul-retreat", "type": "ai-agent"}'::jsonb),
('dais-logic', 'did:daarion:logic', 'logic@daarion.city', 'verified', '{"role": "info_agent", "district": "soul-retreat", "type": "ai-agent"}'::jsonb),
('dais-energia', 'did:daarion:energia', 'energia@daarion.city', 'verified', '{"role": "energy_agent", "district": "energyunion", "type": "ai-agent"}'::jsonb)
ON CONFLICT (id) DO UPDATE SET
trust_level = EXCLUDED.trust_level,
metadata = EXCLUDED.metadata;
-- Other Core Agents
INSERT INTO dais_identities (id, did, default_email, trust_level, metadata)
VALUES
('dais-clan', 'did:daarion:clan', 'clan@daarion.city', 'orchestrator', '{"role": "orchestrator", "type": "ai-agent"}'::jsonb),
('dais-druid', 'did:daarion:druid', 'druid@daarion.city', 'verified', '{"role": "researcher", "type": "ai-agent"}'::jsonb),
('dais-eonarch', 'did:daarion:eonarch', 'eonarch@daarion.city', 'verified', '{"role": "personal_agent", "type": "ai-agent"}'::jsonb),
('dais-yaromir', 'did:daarion:yaromir', 'yaromir@daarion.city', 'verified', '{"role": "personal_agent", "type": "ai-agent"}'::jsonb)
ON CONFLICT (id) DO UPDATE SET
trust_level = EXCLUDED.trust_level,
metadata = EXCLUDED.metadata;
-- ============================================================================
-- 2. AGENTS - Core Agents
-- ============================================================================
-- Get admin user ID
DO $$
DECLARE
admin_user_id UUID;
BEGIN
SELECT id INTO admin_user_id FROM users WHERE email = 'admin@daarion.xyz' LIMIT 1;
IF admin_user_id IS NULL THEN
SELECT id INTO admin_user_id FROM users LIMIT 1;
END IF;
-- City Governance Agents
INSERT INTO agents (external_id, name, kind, owner_user_id, description, is_active, gov_level, status, dais_identity_id, agent_role, agent_service_scope, avatar_url)
VALUES
('agent:daarwizz', 'DAARWIZZ', 'governance', admin_user_id, 'Мер DAARION.city — головний агент міста', true, 'city_governance', 'active', 'dais-daarwizz', 'orchestrator', 'city', '/avatars/daarwizz.png'),
('agent:dario', 'DARIO', 'community', admin_user_id, 'Комʼюніті-менеджер DAARION.city', true, 'city_governance', 'active', 'dais-dario', 'orchestrator', 'city', '/avatars/dario.png'),
('agent:daria', 'DARIA', 'support', admin_user_id, 'Технічна підтримка DAARION.city', true, 'city_governance', 'active', 'dais-daria', 'orchestrator', 'city', '/avatars/daria.png')
ON CONFLICT (external_id) DO UPDATE SET
gov_level = EXCLUDED.gov_level,
status = EXCLUDED.status,
dais_identity_id = EXCLUDED.dais_identity_id,
agent_role = EXCLUDED.agent_role,
agent_service_scope = EXCLUDED.agent_service_scope,
description = EXCLUDED.description;
-- District Lead Agents
INSERT INTO agents (external_id, name, kind, owner_user_id, description, is_active, gov_level, status, dais_identity_id, agent_role, agent_service_scope, avatar_url)
VALUES
('agent:soul', 'SOUL', 'district_lead', admin_user_id, 'District Lead Agent — SOUL Retreat (Wellness/Metahuman)', true, 'district_lead', 'active', 'dais-soul', 'orchestrator', 'district', '/avatars/soul.png'),
('agent:helion', 'Helion', 'district_lead', admin_user_id, 'District Lead Agent — ENERGYUNION (DePIN/Energy/Compute)', true, 'district_lead', 'active', 'dais-helion', 'orchestrator', 'district', '/avatars/helion.png'),
('agent:greenfood', 'GREENFOOD', 'district_lead', admin_user_id, 'District Lead Agent — GREENFOOD (IndustryOps/Supply-Chain)', true, 'district_lead', 'active', 'dais-greenfood', 'orchestrator', 'district', '/avatars/greenfood.png')
ON CONFLICT (external_id) DO UPDATE SET
gov_level = EXCLUDED.gov_level,
status = EXCLUDED.status,
dais_identity_id = EXCLUDED.dais_identity_id,
agent_role = EXCLUDED.agent_role,
agent_service_scope = EXCLUDED.agent_service_scope,
description = EXCLUDED.description;
-- District Support Agents
INSERT INTO agents (external_id, name, kind, owner_user_id, description, is_active, gov_level, status, dais_identity_id, agent_role, agent_service_scope, avatar_url)
VALUES
('agent:spirit', 'Spirit', 'guidance', admin_user_id, 'AI Guidance Agent — медитації, практики, підтримка (SOUL)', true, 'core_team', 'active', 'dais-spirit', 'regular', 'district', '/avatars/spirit.png'),
('agent:logic', 'Logic', 'info', admin_user_id, 'AI Information Agent — розклад, інфо, форми (SOUL)', true, 'core_team', 'active', 'dais-logic', 'regular', 'district', '/avatars/logic.png'),
('agent:energia', 'Energia', 'energy', admin_user_id, 'Energy Agent — телеметрія та аналітика (ENERGYUNION)', true, 'core_team', 'active', 'dais-energia', 'regular', 'district', '/avatars/energia.png')
ON CONFLICT (external_id) DO UPDATE SET
gov_level = EXCLUDED.gov_level,
status = EXCLUDED.status,
dais_identity_id = EXCLUDED.dais_identity_id,
agent_role = EXCLUDED.agent_role,
agent_service_scope = EXCLUDED.agent_service_scope,
description = EXCLUDED.description;
-- Other Core Agents
INSERT INTO agents (external_id, name, kind, owner_user_id, description, is_active, gov_level, status, dais_identity_id, agent_role, avatar_url)
VALUES
('agent:clan', 'CLAN', 'orchestrator', admin_user_id, 'Orchestrator для clan-типу microDAO', true, 'orchestrator', 'active', 'dais-clan', 'orchestrator', '/avatars/clan.png'),
('agent:druid', 'DRUID', 'researcher', admin_user_id, 'Research & Development Agent', true, 'worker', 'active', 'dais-druid', 'regular', '/avatars/druid.png'),
('agent:eonarch', 'EONARCH', 'personal', admin_user_id, 'Personal AI Assistant', true, 'personal', 'active', 'dais-eonarch', 'regular', '/avatars/eonarch.png'),
('agent:yaromir', 'YAROMIR', 'personal', admin_user_id, 'Personal AI Assistant', true, 'personal', 'active', 'dais-yaromir', 'regular', '/avatars/yaromir.png')
ON CONFLICT (external_id) DO UPDATE SET
gov_level = EXCLUDED.gov_level,
status = EXCLUDED.status,
dais_identity_id = EXCLUDED.dais_identity_id,
agent_role = EXCLUDED.agent_role,
description = EXCLUDED.description;
END $$;
-- ============================================================================
-- 3. MICRODAOS - Core DAOs
-- ============================================================================
DO $$
DECLARE
admin_user_id UUID;
daarion_id UUID;
energyunion_id UUID;
greenfood_id UUID;
soul_retreat_id UUID;
BEGIN
SELECT id INTO admin_user_id FROM users WHERE email = 'admin@daarion.xyz' LIMIT 1;
IF admin_user_id IS NULL THEN
SELECT id INTO admin_user_id FROM users LIMIT 1;
END IF;
-- Root MicroDAO (City)
INSERT INTO microdaos (external_id, slug, name, description, owner_user_id, is_active, dao_type)
VALUES ('microdao:daarion', 'daarion', 'DAARION City', 'Root MicroDAO — DAARION.city', admin_user_id, true, 'root')
ON CONFLICT (slug) DO UPDATE SET
dao_type = 'root',
description = EXCLUDED.description
RETURNING id INTO daarion_id;
IF daarion_id IS NULL THEN
SELECT id INTO daarion_id FROM microdaos WHERE slug = 'daarion';
END IF;
-- District: ENERGYUNION
INSERT INTO microdaos (external_id, slug, name, description, owner_user_id, is_active, dao_type)
VALUES ('microdao:energyunion', 'energyunion', 'ENERGYUNION', 'DePIN / Energy Grid / Compute Grid / AI District', admin_user_id, true, 'district')
ON CONFLICT (slug) DO UPDATE SET
dao_type = 'district',
description = EXCLUDED.description
RETURNING id INTO energyunion_id;
IF energyunion_id IS NULL THEN
SELECT id INTO energyunion_id FROM microdaos WHERE slug = 'energyunion';
END IF;
-- District: GREENFOOD
INSERT INTO microdaos (external_id, slug, name, description, owner_user_id, is_active, dao_type)
VALUES ('microdao:greenfood', 'greenfood', 'GREENFOOD', 'IndustryOps / Supply-Chain District', admin_user_id, true, 'district')
ON CONFLICT (slug) DO UPDATE SET
dao_type = 'district',
description = EXCLUDED.description
RETURNING id INTO greenfood_id;
IF greenfood_id IS NULL THEN
SELECT id INTO greenfood_id FROM microdaos WHERE slug = 'greenfood';
END IF;
-- District: SOUL Retreat
INSERT INTO microdaos (external_id, slug, name, description, owner_user_id, is_active, dao_type)
VALUES ('microdao:soul-retreat', 'soul-retreat', 'SOUL Retreat', 'Wellness / Retreat / Metahuman District', admin_user_id, true, 'district')
ON CONFLICT (slug) DO UPDATE SET
dao_type = 'district',
description = EXCLUDED.description
RETURNING id INTO soul_retreat_id;
IF soul_retreat_id IS NULL THEN
SELECT id INTO soul_retreat_id FROM microdaos WHERE slug = 'soul-retreat';
END IF;
-- Update orchestrator references
UPDATE microdaos SET primary_orchestrator_agent_id = (SELECT id::TEXT FROM agents WHERE external_id = 'agent:daarwizz' LIMIT 1)
WHERE slug = 'daarion';
UPDATE microdaos SET primary_orchestrator_agent_id = (SELECT id::TEXT FROM agents WHERE external_id = 'agent:helion' LIMIT 1)
WHERE slug = 'energyunion';
UPDATE microdaos SET primary_orchestrator_agent_id = (SELECT id::TEXT FROM agents WHERE external_id = 'agent:greenfood' LIMIT 1)
WHERE slug = 'greenfood';
UPDATE microdaos SET primary_orchestrator_agent_id = (SELECT id::TEXT FROM agents WHERE external_id = 'agent:soul' LIMIT 1)
WHERE slug = 'soul-retreat';
-- Update agents' home_microdao_id
UPDATE agents SET home_microdao_id = daarion_id::TEXT
WHERE external_id IN ('agent:daarwizz', 'agent:dario', 'agent:daria');
UPDATE agents SET home_microdao_id = energyunion_id::TEXT
WHERE external_id IN ('agent:helion', 'agent:energia');
UPDATE agents SET home_microdao_id = greenfood_id::TEXT
WHERE external_id = 'agent:greenfood';
UPDATE agents SET home_microdao_id = soul_retreat_id::TEXT
WHERE external_id IN ('agent:soul', 'agent:spirit', 'agent:logic');
END $$;
-- ============================================================================
-- 4. AGENT ASSIGNMENTS
-- ============================================================================
-- City Governance Assignments
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'city'::assignment_scope,
'city_governance',
'{"power": ["administrative", "moderation", "protocol"]}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:daarwizz' AND m.slug = 'daarion'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'city'::assignment_scope,
'city_community',
'{"power": ["moderation", "execution"]}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:dario' AND m.slug = 'daarion'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'city'::assignment_scope,
'city_support',
'{"power": ["moderation", "identity"]}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:daria' AND m.slug = 'daarion'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
-- District Lead Assignments
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'district'::assignment_scope,
'district_lead',
'{"power": ["administrative", "moderation", "district"]}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:helion' AND m.slug = 'energyunion'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'district'::assignment_scope,
'district_lead',
'{"power": ["administrative", "moderation", "district"]}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:greenfood' AND m.slug = 'greenfood'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'district'::assignment_scope,
'district_lead',
'{"power": ["administrative", "moderation", "district"]}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:soul' AND m.slug = 'soul-retreat'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
-- District Core-team Assignments
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'district'::assignment_scope,
'core_team',
'{"power": ["execution"], "specialty": "guidance"}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:spirit' AND m.slug = 'soul-retreat'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'district'::assignment_scope,
'core_team',
'{"power": ["execution"], "specialty": "information"}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:logic' AND m.slug = 'soul-retreat'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
INSERT INTO agent_assignments (agent_id, target_microdao_id, scope, role, metadata)
SELECT
a.id::TEXT,
m.id::TEXT,
'district'::assignment_scope,
'core_team',
'{"power": ["execution", "infrastructure"], "specialty": "energy"}'::jsonb
FROM agents a, microdaos m
WHERE a.external_id = 'agent:energia' AND m.slug = 'energyunion'
ON CONFLICT (agent_id, target_microdao_id, role) DO NOTHING;
-- ============================================================================
-- 5. PERMISSIONS - Base Permissions for City Governance
-- ============================================================================
-- DAARWIZZ permissions (superadmin on city)
INSERT INTO permissions (dais_id, target_type, target_id, action, granted_by)
VALUES
('dais-daarwizz', 'city', 'daarion', 'superadmin', 'system')
ON CONFLICT (dais_id, target_type, target_id, action) DO NOTHING;
-- DARIO permissions (moderate city)
INSERT INTO permissions (dais_id, target_type, target_id, action, granted_by)
VALUES
('dais-dario', 'city', 'daarion', 'moderate', 'dais-daarwizz')
ON CONFLICT (dais_id, target_type, target_id, action) DO NOTHING;
-- DARIA permissions (admin city)
INSERT INTO permissions (dais_id, target_type, target_id, action, granted_by)
VALUES
('dais-daria', 'city', 'daarion', 'admin', 'dais-daarwizz')
ON CONFLICT (dais_id, target_type, target_id, action) DO NOTHING;
-- District Lead permissions
INSERT INTO permissions (dais_id, target_type, target_id, action, granted_by)
SELECT 'dais-helion', 'district', id::TEXT, 'admin', 'dais-daarwizz'
FROM microdaos WHERE slug = 'energyunion'
ON CONFLICT (dais_id, target_type, target_id, action) DO NOTHING;
INSERT INTO permissions (dais_id, target_type, target_id, action, granted_by)
SELECT 'dais-greenfood', 'district', id::TEXT, 'admin', 'dais-daarwizz'
FROM microdaos WHERE slug = 'greenfood'
ON CONFLICT (dais_id, target_type, target_id, action) DO NOTHING;
INSERT INTO permissions (dais_id, target_type, target_id, action, granted_by)
SELECT 'dais-soul', 'district', id::TEXT, 'admin', 'dais-daarwizz'
FROM microdaos WHERE slug = 'soul-retreat'
ON CONFLICT (dais_id, target_type, target_id, action) DO NOTHING;
-- ============================================================================
-- 6. ROOMS - District Rooms (if not exist)
-- ============================================================================
-- SOUL District Rooms
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'soul-lobby', 'district', id::TEXT, 'district-room', 'district', 'public-city',
'SOUL Lobby', 'Головний вхід до SOUL Retreat District', 'soul'
FROM microdaos WHERE slug = 'soul-retreat'
ON CONFLICT (id) DO NOTHING;
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'soul-events', 'district', id::TEXT, 'district-room', 'district', 'public-city',
'SOUL Events', 'Анонси подій та ретритів', 'soul'
FROM microdaos WHERE slug = 'soul-retreat'
ON CONFLICT (id) DO NOTHING;
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'soul-guidance', 'district', id::TEXT, 'district-room', 'district', 'members',
'SOUL Guidance', 'Кімната Spirit & Logic — медитації та інфо', 'spirit'
FROM microdaos WHERE slug = 'soul-retreat'
ON CONFLICT (id) DO NOTHING;
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'soul-masters', 'district', id::TEXT, 'district-room', 'district', 'public-city',
'SOUL Masters', 'Профілі майстрів та вчителів', 'soul'
FROM microdaos WHERE slug = 'soul-retreat'
ON CONFLICT (id) DO NOTHING;
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'soul-help', 'district', id::TEXT, 'district-room', 'district', 'public-city',
'SOUL Help', 'Підтримка та FAQ', 'logic'
FROM microdaos WHERE slug = 'soul-retreat'
ON CONFLICT (id) DO NOTHING;
-- SOUL Portal to City
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, is_portal, portal_target_microdao_id, zone)
SELECT
'soul-city-portal', 'district', id::TEXT, 'front-room', 'city', 'public-city',
'SOUL Retreat Portal', 'Портал до SOUL Retreat District', true, id::TEXT, 'wellness-zone'
FROM microdaos WHERE slug = 'soul-retreat'
ON CONFLICT (id) DO NOTHING;
-- ENERGYUNION additional rooms
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'energyunion-telemetry', 'district', id::TEXT, 'district-room', 'district', 'members',
'ENERGYUNION Telemetry', 'Телеметрія та моніторинг енергії', 'energia'
FROM microdaos WHERE slug = 'energyunion'
ON CONFLICT (id) DO NOTHING;
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'energyunion-compute', 'district', id::TEXT, 'district-room', 'district', 'members',
'ENERGYUNION Compute', 'AI/Compute ресурси та лабораторії', 'helion'
FROM microdaos WHERE slug = 'energyunion'
ON CONFLICT (id) DO NOTHING;
-- GREENFOOD additional rooms
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'greenfood-warehouse', 'district', id::TEXT, 'district-room', 'district', 'members',
'GREENFOOD Warehouses', 'Склади та інвентар', 'greenfood'
FROM microdaos WHERE slug = 'greenfood'
ON CONFLICT (id) DO NOTHING;
INSERT INTO rooms (id, owner_type, owner_id, type, space_scope, visibility, name, description, primary_agent_id)
SELECT
'greenfood-logistics', 'district', id::TEXT, 'district-room', 'district', 'members',
'GREENFOOD Logistics', 'Логістика та доставка', 'greenfood'
FROM microdaos WHERE slug = 'greenfood'
ON CONFLICT (id) DO NOTHING;
-- ============================================================================
-- 7. LOG SEED EVENT
-- ============================================================================
INSERT INTO event_outbox (event_type, subject, payload, version, status, actor_id, scope)
VALUES (
'system.seed.completed',
'daarion.system.seed',
jsonb_build_object(
'migration', '033_mvp_seed_real_entities',
'agents_seeded', ARRAY['daarwizz', 'dario', 'daria', 'soul', 'helion', 'greenfood', 'spirit', 'logic', 'energia', 'clan', 'druid', 'eonarch', 'yaromir'],
'microdaos_seeded', ARRAY['daarion', 'energyunion', 'greenfood', 'soul-retreat'],
'timestamp', NOW()
),
'1.0',
'published',
'system',
'city'
);
-- ============================================================================
-- DONE
-- ============================================================================
SELECT 'Migration 033 completed: MVP Seed Real Entities' as result;