-- DMs
CREATE TABLE dms_temp_old(
  "id" varchar(255) NOT NULL,
  "user" varchar(255) NOT NULL,
  "service" varchar(20) NOT NULL,
  "content" text NOT NULL DEFAULT '',
  "embed" jsonb NOT NULL DEFAULT '{}',
  "added" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  "published" timestamp,
  "file" jsonb NOT NULL,
  PRIMARY KEY (id, service)
);

CREATE TABLE unapproved_dms_temp_old(
  "import_id" varchar(255) NOT NULL,
  contributor_id varchar(255),
  "id" varchar(255) NOT NULL,
  "user" varchar(255) NOT NULL,
  "service" varchar(20) NOT NULL,
  "content" text NOT NULL DEFAULT '',
  "embed" jsonb NOT NULL DEFAULT '{}',
  "added" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  "published" timestamp,
  "file" jsonb NOT NULL,
  PRIMARY KEY (id, service)
);

-- the old tables weren't dropped, apparently

CREATE TABLE dms(
  "hash" varchar NOT NULL,
  "user" varchar(255) NOT NULL,
  service varchar(20) NOT NULL,
  "content" text NOT NULL DEFAULT ''::text,
  embed jsonb NOT NULL DEFAULT '{}' ::jsonb,
  added timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  published timestamp NULL,
  file jsonb NOT NULL,
  CONSTRAINT dms_pkey PRIMARY KEY ("hash", "user", service)
);

CREATE TABLE unapproved_dms(
  "hash" varchar NOT NULL,
  "user" varchar(255) NOT NULL,
  service varchar(20) NOT NULL,
  contributor_id varchar(255) NOT NULL,
  "content" text NOT NULL DEFAULT ''::text,
  embed jsonb NOT NULL DEFAULT '{}' ::jsonb,
  added timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  published timestamp NULL,
  file jsonb NOT NULL,
  import_id varchar(255) NOT NULL,
  remote_user_id_hash varchar NULL,
  deleted_at timestamp NULL,
  CONSTRAINT unapproved_dms_pkey PRIMARY KEY ("hash", "user", service, contributor_id)
);

CREATE INDEX dm_idx ON dms_temp_old USING btree("user");

CREATE INDEX dms_user_idx ON dms_temp_old("user");

CREATE INDEX unapproved_dm_idx ON unapproved_dms USING btree("import_id");

CREATE INDEX unapproved_dms_contributor_id_user_idx ON unapproved_dms(contributor_id, "user");
