create table meta (
  version text      -- schema version
);

insert into meta values ("1.0.0");

create table users (
  user_id text,     -- string (uuid1)
  user_name text,   -- string
  auth_hash text,   -- string (sha256 hash)
  quip text,        -- string (possibly empty)
  bio text,         -- string (possibly empty)
  color int,        -- int (from 0 to 6)
  is_admin int,     -- bool
  created real      -- floating point unix timestamp (when this user registered)
);

insert into users values (
  "be105a40-6bd1-405f-9716-aa6158ac1eef", -- TODO replace UUID with incrementing int
  "anon",
  "8e97c0b197816a652fb489b21e63f664863daa991e2f8fd56e2df71593c2793f",
  "",
  "",
  0,
  0,
  1650819851
);

-- TODO unique constraint on user_name?

create table threads (
  thread_id text,   -- uuid string
  author text,      -- string (uuid1, user.user_id)
  title text,       -- string
  last_mod real,    -- floating point unix timestamp (of last post or post edit)
  created real,     -- floating point unix timestamp (when thread was made)
  reply_count int,  -- integer (incremental, starting with 0)
  pinned int,       -- boolean
  last_author text  -- uuid string
);


create table messages (
  thread_id text,   -- string (uuid1 of parent thread)
  post_id int,      -- integer (incrementing from 1)
  author text,      -- string (uuid1, user.user_id)
  created real,     -- floating point unix timestamp (when reply was posted)
  edited int,       -- bool
  body text,        -- string
  send_raw int      -- bool (1/true == never apply formatting)
);
