sql
CopyEdit
-- Enable UUID extension if not already
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
-- 1. Holons Table
CREATE TABLE holons (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
name TEXT NOT NULL,
governance_level TEXT CHECK (governance_level IN ('Local', 'Regional', 'Global')),
interaction_scope TEXT CHECK (interaction_scope IN ('Autonomous', 'Coordinated', 'Network-Wide')),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 2. Simulations Table
CREATE TABLE simulations (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
holon_id UUID REFERENCES holons(id) ON DELETE CASCADE,
simulation_type TEXT CHECK (simulation_type IN ('Governance', 'Resource Flow', 'Decision-Making')),
outcome TEXT CHECK (outcome IN ('Pending', 'Successful', 'Needs Adjustment')),
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 3. Proposals Table
CREATE TABLE proposals (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
title TEXT NOT NULL,
description TEXT,
status TEXT CHECK (status IN ('Pending', 'Approved', 'Rejected')) DEFAULT 'Pending',
created_by UUID REFERENCES holons(id),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deadline TIMESTAMP
);
-- 4. Votes Table
CREATE TABLE votes (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
proposal_id UUID REFERENCES proposals(id) ON DELETE CASCADE,
voter_id UUID REFERENCES holons(id) ON DELETE CASCADE,
vote BOOLEAN NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 5. Resources Table
CREATE TABLE resources (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
holon_id UUID REFERENCES holons(id) ON DELETE CASCADE,
type TEXT CHECK (type IN ('Energy', 'Tokens', 'Data', 'Compute')),
quantity NUMERIC,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 6. Feedback Table
CREATE TABLE feedback (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
category TEXT CHECK (category IN ('Governance', 'Decision-Making', 'Resource Flow')),
submitted_by UUID REFERENCES holons(id),
type TEXT CHECK (type IN ('Issue', 'Suggestion', 'Observation')),
urgency TEXT CHECK (urgency IN ('Low', 'Medium', 'High')),
resolution_status TEXT CHECK (resolution_status IN ('Pending', 'Resolved', 'In Review')) DEFAULT 'Pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 7. Automations Table
CREATE TABLE automations (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
trigger_type TEXT,
action_type TEXT,
config JSONB,
enabled BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);