Database Schema

Generated: 2026-10-04T22:45:58.266Z *(PK inferred from column named id) *(FK heuristic — verify against migrations)**

Tables

CCS_avrae_sessions

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
user_id uuid NO      
name text NO      
map_config jsonb YES      
players jsonb YES      
npcs jsonb YES      
monsters jsonb YES      
revealed_tiles jsonb YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      
effects jsonb YES      

CCS_battlemaps

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
name text NO      
grid_width integer YES      
grid_height integer YES      
cell_size_px integer YES      
keywords text YES      
creator text NO      
source_url text YES      
is_free_use boolean NO      
is_approved boolean NO      
submitted_by uuid NO      
created_at timestamp with time zone NO      
image_url text YES      
thumbnail_url text YES      
optimized_url text YES      

CCS_card_participants

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
user_id uuid NO     Note: This is a Primary Key. This is a Foreign Key to CCS_discord_users.user_id.
points integer NO      
enabled boolean NO      
enrolled_at timestamp with time zone NO      
enrolled_by uuid YES     Note: This is a Foreign Key to CCS_discord_users.user_id.

CCS_cards

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
monster_type text NO      
name text NO      
card_number smallint NO      
rarity text YES      
flavor_text text YES      
bonus_description text NO      
passive_bonus_text text YES      
image_url text YES      
image_credit text YES      
is_active boolean NO      
created_at timestamp with time zone NO      
created_by uuid YES     Note: This is a Foreign Key to CCS_discord_users.user_id.
mega_bonus_text text YES      

CCS_discord_role_map

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
role_id text NO     Note: This is a Primary Key.
role_name text NO     Text Role Name (Manually Updated unless we create a bot)
elevated_access boolean YES      

CCS_discord_users

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
discord_id text NO      
display_name text YES      
roles jsonb YES     Guild Roles. Updated each login, translated via discord_role_map and a function upon save.
created_at timestamp with time zone YES      
user_id uuid NO     Supabase UUID for authentication and authorisation control Note: This is a Primary Key.
last_seen timestamp with time zone YES      
approved_map_submitter boolean YES      

CCS_errors

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
created_at timestamp with time zone NO      
module text YES      
error text YES      
user_id uuid YES      
level text YES      

CCS_freehost_images

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
created_at timestamp with time zone NO      
image_url text NO      
thumb_url text NO      
delete_url text YES      
provider_id text YES      
viewer_url text YES      
width integer YES      
height integer YES      
original_filename text YES      
resized_url text YES      
resized_width integer YES      
resized_height integer YES      
was_resized boolean YES      

CCS_location_maps

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
name text NO      
map_file_url text NO      
description text YES      
created_at timestamp with time zone YES      
updated_at timestamp with time zone YES      
width smallint YES      
height smallint YES      
initial_x real YES     The starting horizontal coordinate (longitude) for the map view.
initial_y real YES     The starting vertical coordinate (latitude) for the map view.
initial_zoom real YES     The starting zoom level. 0 is usually full fit, positive is zoomed in.
display_height text YES     The CSS height for the map widget (e.g., 80vh, 500px).

CCS_locations

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
map_id bigint NO      
name text YES      
x numeric YES      
y numeric YES      
description text YES      
link_url text YES      
is_home boolean YES      
created_at timestamp with time zone YES      

CCS_player_cards

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
user_id uuid NO     Note: This is a Foreign Key to CCS_discord_users.user_id.
card_id uuid NO     Note: This is a Foreign Key to CCS_cards.id.
state text NO      
acquired_at timestamp with time zone NO      
revealed_at timestamp with time zone YES      

CCS_session_images

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
created_at timestamp with time zone NO      
user_id uuid NO      
name text NO      
search_keys text YES      
image_id uuid NO      

CCS_system

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
created_at timestamp with time zone NO      
setting text YES      
value text YES      

CCS_tokens

CCS_ tables are for Coconut Codex

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
type text NO      
token_code text YES      
created_at timestamp with time zone YES      
user_id uuid YES      
size text NO     size
image_url text YES      

ac_artificer_infusions

Allowed Content: Artificer Infusions

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
item_prereq text YES      
requires_attunement text YES      
level_prereq text YES      
source text NO      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_backgrounds

Allowed Content: Backgrounds

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
source text NO      
feature text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_bastion_categories

Allowed Content: Bastion Categories (lookup table)

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
notes text YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      
display_order integer YES      

ac_bastions

Allowed Content: Bastions

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category_id uuid YES     Note: This is a Foreign Key to ac_bastion_categories.id.
name text NO      
source text YES      
size text YES      
building_prerequisite text YES      
cost_gp text YES      
cost_dtp text YES      
order text YES      
description text YES      
notes_advice text YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_classes

Allowed Content: Classes

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
subclass text NO      
hit_die text YES      
multiclassing text YES      
expanded_options text YES      
rage_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_downtime

Allowed Content: Downtime

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category_id uuid YES     Note: This is a Foreign Key to ac_downtime_categories.id.
name text NO      
gold_cost text YES      
dtp_cost text YES      
description text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_downtime_categories

Allowed Content: Downtime Categories (lookup)

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
notes text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_eldritch_invocations

Allowed Content: Eldritch Invocations

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
pact_prereq text YES      
other_prereq text YES      
level_prereq text YES      
source text NO      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_equipment

Allowed Content: Equipment

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category_id uuid YES     Note: This is a Foreign Key to ac_equipment_categories.id.
name text NO      
source text NO      
cost_gp text YES      
weight_lbs text YES      
craft_cost_gp text YES      
craft_cost_dtp text YES      
craft_reqs text YES      
description text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_equipment_categories

Allowed Content: Equipment Categories (lookup)

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
notes text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_feats

Allowed Content: Feats

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
source text NO      
category text YES      
prerequisite text YES      
ability_increase text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_fighting_styles

Allowed Content: Fighting Styles

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
classes text YES      
source text NO      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_item_properties

Allowed Content: Item Properties

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category_id uuid YES     Note: This is a Foreign Key to ac_item_properties_categories.id.
name text NO      
source text NO      
type text YES      
category_sub text YES      
description text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_item_properties_categories

Allowed Content: Item Property Categories (lookup)

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
notes text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_item_tag

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category text NO      
name text YES      

ac_language_types

Allowed Content: Language Types (lookup)

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
description text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_languages

Allowed Content: Languages

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
type_id uuid YES     Note: This is a Foreign Key to ac_language_types.id.
script text YES      
origin text YES      
typical_speakers text YES      
notes text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_loot

Allowed Content: Loot

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category_id uuid YES     Note: This is a Foreign Key to ac_loot_categories.id.
name text NO      
source text NO      
type text YES      
tier text YES      
description text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      
weight double precision YES      
apl_multiplier json YES      

ac_loot_categories

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
notes text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_loot_tags

Field Type Nullable PK FK Description
loot_id uuid NO     Note: This is a Primary Key. This is a Foreign Key to ac_loot.id.
tag_id uuid NO     Note: This is a Primary Key. This is a Foreign Key to ac_item_tag.id.

ac_monsters

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category_id uuid YES     Note: This is a Foreign Key to ac_monsters_categories.id.
name text NO      
source text NO      
classification text YES      
cr text YES      
creature_type text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_monsters_categories

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
notes text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_other_rewards

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
category_id uuid YES     Note: This is a Foreign Key to ac_other_rewards_categories.id.
name text NO      
source text NO      
type text YES      
tier text YES      
description text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_other_rewards_categories

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
notes text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_races

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
subrace text NO      
size text YES      
speed text YES      
language text YES      
str text YES      
dex text YES      
con text YES      
int text YES      
wis text YES      
cha text YES      
extra text YES      
source text YES      
rage_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

ac_sources

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
abbreviation text NO      
type text NO      
ruleset text NO      
allowed_content text YES      
notes_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      
link text YES      
source_key text NO      
check_id text YES      

ac_spells

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
name text NO      
source text NO      
notes text YES      
rage_advice text YES      
display_order integer YES      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

discord_role_map

lookup table (Hawthorne role ID and role name)

Field Type Nullable PK FK Description
role_id text NO     Note: This is a Primary Key.
role_name text NO      
elevated_access boolean YES      
monster_admin boolean YES      

discord_users

Field Type Nullable PK FK Description
discord_id text NO     Note: This is a Primary Key.
display_name text YES      
roles jsonb YES      
created_at timestamp with time zone YES      
user_id uuid YES      
last_seen timestamp with time zone YES      
site_admin boolean NO      

errors

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
created_at timestamp with time zone NO      
module text YES      
error text YES      
user_id uuid YES      
level text YES      

events

Field Type Nullable PK FK Description
id integer NO PK   Note: This is a Primary Key.
name text NO      
description text YES      
is_active boolean YES      
created_at timestamp with time zone YES      

faq

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
question text NO      
answer text NO      
embedding public.vector YES      
channel_ids bigint[] YES      
category text NO      

hypopg_hidden_indexes

Field Type Nullable PK FK Description
indexrelid oid YES      
index_name name YES      
schema_name name YES      
table_name name YES      
am_name name YES      
is_hypo boolean YES      

hypopg_list_indexes

Field Type Nullable PK FK Description
indexrelid oid YES      
index_name text YES      
schema_name name YES      
table_name name YES      
am_name name YES      

location_maps

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
name text NO      
map_file_url text NO      
description text YES      
created_at timestamp with time zone YES      
updated_at timestamp with time zone YES      
width smallint YES      
height smallint YES      
initial_x real YES      
initial_y real YES      
initial_zoom real YES      
display_height text YES      

locations

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
map_id bigint NO     Note: This is a Foreign Key to location_maps.id.
name text YES      
x numeric YES      
y numeric YES      
description text YES      
link_url text YES      
is_home boolean YES      
created_at timestamp with time zone YES      

lookup_habitats

Field Type Nullable PK FK Description
id integer NO PK   Note: This is a Primary Key.
name text YES      

lookups

Field Type Nullable PK FK Description
type text NO     Note: This is a Primary Key.
data jsonb NO      

monster_features

join table between monsters and monster features

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
parent_row_id uuid NO     Note: This is a Foreign Key to monsters.row_id.
name text NO      
description text NO      
type public.feature_type NO      
display_order integer YES      

monster_habitats

Join table between monsters and habitats

Field Type Nullable PK FK Description
parent_row_id uuid NO     Note: This is a Primary Key. This is a Foreign Key to monsters.row_id.
habitat_id integer NO     Note: This is a Primary Key. This is a Foreign Key to lookup_habitats.id.

monsters

Field Type Nullable PK FK Description
row_id uuid NO     Note: This is a Primary Key.
monster_id uuid NO      
version text NO      
slug text NO      
name text NO      
is_live boolean YES      
status public.monster_status YES     Draft, Pending, Queued, Approved, Archived
usage text YES      
creator_notes text YES      
reviewer_id uuid YES      
image_url text YES      
image_credit text YES      
token_url text YES      
size text NO      
species text NO      
alignment text NO      
alignment_prefix text YES      
description text YES      
additional_info text YES      
tags jsonb YES      
ac integer NO      
conditional_ac text YES      
hit_dice_num integer NO      
hit_dice_size integer NO      
hp_modifier integer NO      
speed text NO      
init_prof text YES      
ability_scores jsonb NO      
saves jsonb YES      
skills text YES      
damage_vulnerabilities text YES      
damage_resistances text YES      
damage_immunities text YES      
senses text YES      
languages text YES      
cr numeric NO      
legendary_header text YES     Intro text for the Legendary Actions section
lair_header text YES     Intro text for the Lair Actions section
regional_header text YES     Intro text for the Regional Effects section
created_at timestamp with time zone YES      
updated_at timestamp with time zone YES      
submitted_at timestamp with time zone YES      
archived_at timestamp with time zone YES      
condition_immunities text YES      
creator_discord_id text YES     Note: This is a Foreign Key to discord_users.discord_id.
creator text YES      
reviewer_notes text YES      
passive_perc_prof text YES     Proficiency level for Passive Perception calculation (None, Proficient, Expert)

rework

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      
discord_id text NO      
character_name text YES      
old_character jsonb YES      
new_character jsonb YES      
cost text YES      
notes text YES      
rework_type text YES      

server_msg

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
message text NO      
start_date date NO      
end_date date NO      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

session_logs

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
user_id uuid NO      
title text NO      
session_date date YES      
is_template boolean YES      
form_data jsonb NO      
created_at timestamp with time zone NO      
updated_at timestamp with time zone NO      

session_player_submissions

Field Type Nullable PK FK Description
id uuid NO PK   Note: This is a Primary Key.
session_id uuid YES     Note: This is a Foreign Key to session_logs.id.
discord_id text NO      
payload jsonb YES      
updated_at timestamp with time zone YES      

system

Field Type Nullable PK FK Description
id bigint NO PK   Note: This is a Primary Key.
created_at timestamp with time zone NO      
setting text YES      
value text YES