CREATE TABLE communities (
	id                       text PRIMARY KEY,
	label                    text NOT NULL,
	description              text NOT NULL DEFFAULT '',
	status                   text NOT NULL DEFAULT 'hidden', -- all, manager, hidden
	type                     text NOT NULL, -- community, ri
	subjects                 text[],
	fos                      text[],
	sdg                      text[],
	adv_constraints          json,
	remove_constraints       json,
	main_zenodo_community    text,
	other_zenodo_communities text[],
	creation_date            timestamp NOT NULL DEFAULT now(),
	logo_url                 text
);

CREATE TABLE community_projects (
	community       text NOT NULL REFERENCES communities(id),
	project_id      text NOT NULL,
	project_code    text NOT NULL,
	project_name    text NOT NULL,
	project_acronym text,
	project_funder  text NOT NULL,
	PRIMARY KEY (community, project_id)
);

CREATE TABLE community_datasources (
	community    text NOT NULL REFERENCES communities(id),
	ds_id        text NOT NULL,
	ds_name      text NOT NULL,
	constraints  json,
	PRIMARY KEY (community, ds_id)
);

CREATE TABLE community_support_orgs (
	community     text REFERENCES communities(id),
	org_name      text NOT NULL,
	org_url       text NOT NULL,
	org_logourl   text NOT NULL,
	PRIMARY KEY (community, org_name)
);

CREATE TABLE community_orgs (
	community   text REFERENCES communities(id),
	org_id      text NOT NULL,
	PRIMARY KEY (community, org_id)
);
