CREATE TABLE IF NOT EXISTS events (
  id SERIAL,
  title varchar(128) NOT NULL,
  description varchar(16384) NOT NULL,
  datetime timestamp with time zone NOT NULL,
  location varchar(128) NOT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS invitations (
  id SERIAL,
  vanity char(12) NOT NULL,
  comments varchar(1024) NOT NULL,
  created_on timestamp with time zone default current_timestamp,
  capabilities bigint NOT NULL,
  event_id integer NOT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS rsvps (
  id SERIAL,
  vanity char(12) NOT NULL,
  invitation_id char(12) NOT NULL,
  event_id bigint NOT NULL,
  fullname varchar(128) NOT NULL,
  email varchar(256) NOT NULL,
  guests varchar(1024) NOT NULL,
  attending varchar(32) NOT NULL,
  PRIMARY KEY (id)
);

-- `rsvps` contains the bare minimum. If we later decide we need additional
-- fields, we'll have an additional table mapping events.id to attribute names
-- and rsvps.id to attribute values.
