erDiagram futures_domain_categories { UUID category_id UUID project_id FK VARCHAR category_name UUID parent_id FK VARCHAR category_path } futures_driver_signals { INT id UUID driver_id FK UUID signal_id FK VARCHAR short_description DATE created_on UUID project_id FK } futures_driver_trends { INT id UUID driver_id FK UUID trend_id FK VARCHAR short_description DATE created_on UUID project_id FK } futures_drivers { UUID driver_id UUID driver_set_id FK INT driver_number VARCHAR driver_name VARCHAR driver_description FLOAT weight_past FLOAT push_present FLOAT pull_future DATE created_on DATE last_modified UUID project_id FK } futures_drivers_sets { UUID driver_set_id VARCHAR driver_set_status DATE created_on UUID project_id FK } futures_projects { UUID project_id VARCHAR domain VARCHAR client VARCHAR geography VARCHAR horizon VARCHAR questions DATE created_on BOOLEAN is_public } futures_scenario_drivers { INT id UUID scenario_id FK UUID driver_id FK VARCHAR driver_value DATE created_on DATE last_modified UUID project_id FK } futures_scenario_sets { UUID scenario_set_id VARCHAR scenario_set_status DATE created_on UUID project_id FK VARCHAR scenario_methodology UUID driver_set_id FK } futures_scenarios { UUID scenario_id UUID scenario_set_id FK VARCHAR scenario_logics VARCHAR scenario_title TEXT scenario_text UUID project_id FK DATE created_on DATE last_modified JSON scenario_sections } futures_signals { UUID signal_id VARCHAR title VARCHAR author VARCHAR source_name VARCHAR url DATE signal_date VARCHAR steep VARCHAR horizon JSON keywords VARCHAR signal_type VARCHAR description VARCHAR change_desc INT impact INT likelihood INT credibility INT novelty DATE created_on UUID project_id FK VARCHAR url_normalized VARCHAR source_type VECTORFIELD embedding } futures_stakeholders { UUID stakeholder_id UUID project_id FK VARCHAR stakeholder_name } futures_digestuploadchunk { INT id UUID task_id FK INT chunk_index BINARYFIELD data } futures_vision { UUID id UUID project_id FK TEXT statement JSON prompts VARCHAR status DATE updated_at DATE created_at } futures_artifact_sets { UUID artifact_set_id VARCHAR artifact_set_status DATE created_on UUID project_id FK UUID scenario_set_id FK } futures_steep_trend { UUID trend_id VARCHAR steep VARCHAR topic VARCHAR name TEXT summary TEXT detail VARCHAR source_label VARCHAR source_url VARCHAR status DATE last_synthesized_at VECTORFIELD embedding DATE created_on DATE updated_on } futures_steep_trend_evidence { UUID evidence_id UUID trend_id FK UUID signal_id FK UUID news_item_id FK VARCHAR source_label VARCHAR source_url BOOLEAN is_contrary TEXT relevance_note DATE added_at DATE expires_at } futures_trend_recommendation { UUID rec_id UUID task_id FK VARCHAR kind VARCHAR status TEXT justification UUID target_trend_id FK JSON proposed_data DATE created_at DATE reviewed_at UUID reviewed_by_id FK VARCHAR reviewer_note } futures_trends_config { INT id VARCHAR access_level DATE discovery_processed_through DATE signals_curated_through_date } futures_artifacts { UUID artifact_id UUID artifact_set_id FK UUID scenario_id FK UUID project_id FK VARCHAR title VARCHAR artifact_type VARCHAR who_uses_it VARCHAR significance VARCHAR relationship_to_scenario IMAGEFIELD image DATE created_on DATE last_modified } futures_projects ||--o{ futures_domain_categories : project_id futures_domain_categories ||--o{ futures_domain_categories : parent_id futures_drivers ||--o{ futures_driver_signals : driver_id futures_signals ||--o{ futures_driver_signals : signal_id futures_projects ||--o{ futures_driver_signals : project_id futures_drivers ||--o{ futures_driver_trends : driver_id futures_steep_trend ||--o{ futures_driver_trends : trend_id futures_projects ||--o{ futures_driver_trends : project_id futures_drivers_sets ||--o{ futures_drivers : driver_set_id futures_projects ||--o{ futures_drivers : project_id futures_projects ||--o{ futures_drivers_sets : project_id futures_scenarios ||--o{ futures_scenario_drivers : scenario_id futures_drivers ||--o{ futures_scenario_drivers : driver_id futures_projects ||--o{ futures_scenario_drivers : project_id futures_projects ||--o{ futures_scenario_sets : project_id futures_drivers_sets ||--o{ futures_scenario_sets : driver_set_id futures_scenario_sets ||--o{ futures_scenarios : scenario_set_id futures_projects ||--o{ futures_scenarios : project_id futures_projects ||--o{ futures_signals : project_id futures_projects ||--o{ futures_stakeholders : project_id futures_apptask ||--o{ futures_digestuploadchunk : task_id futures_projects ||--|| futures_vision : project_id futures_projects ||--o{ futures_artifact_sets : project_id futures_scenario_sets ||--o{ futures_artifact_sets : scenario_set_id futures_steep_trend ||--o{ futures_steep_trend_evidence : trend_id futures_signals ||--o{ futures_steep_trend_evidence : signal_id futures_newsitem ||--o{ futures_steep_trend_evidence : news_item_id futures_apptask ||--o{ futures_trend_recommendation : task_id futures_steep_trend ||--o{ futures_trend_recommendation : target_trend_id users_user ||--o{ futures_trend_recommendation : reviewed_by_id futures_artifact_sets ||--o{ futures_artifacts : artifact_set_id futures_scenarios ||--o{ futures_artifacts : scenario_id futures_projects ||--o{ futures_artifacts : project_id