-- Database export via SQLPro (https://www.sqlprostudio.com/)
-- Exported by camille at 27-01-2025 14:22.
-- WARNING: This file may contain descructive statements such as DROPs.
-- Please ensure that you are running the script at the proper location.


-- BEGIN TABLE public.instances
DROP TABLE IF EXISTS public.instances CASCADE;
BEGIN;

CREATE TABLE IF NOT EXISTS public.instances (
	id bigint DEFAULT nextval('insances_sampleid_seq'::regclass) NOT NULL,
	instance character varying NOT NULL,
	record_update_by bigint,
	record_updated_at timestamp without time zone,
	vote integer DEFAULT 1 NOT NULL,
	PRIMARY KEY(id)
);

COMMIT;

-- Inserting 4 rows into public.instances
-- Insert batch #1
INSERT INTO public.instances (id, instance, record_update_by, record_updated_at, vote) VALUES
(838, 'preteengirls.biz', 1, '2025-01-27 14:07:55.985233', 1),
(839, 'friends.nico', 1, '2025-01-27 14:16:52.808933', 1),
(840, 'kiwifarms.cc', 1, '2025-01-27 14:19:24.443163', 1),
(841, 'mstdn.io', 1, '2025-01-27 14:20:55.968186', 1);

-- END TABLE public.instances

-- BEGIN TABLE public.receipt_tags
DROP TABLE IF EXISTS public.receipt_tags CASCADE;
BEGIN;

CREATE TABLE IF NOT EXISTS public.receipt_tags (
	id bigint DEFAULT nextval('receipt_tags_sampleid_seq'::regclass) NOT NULL,
	instance_id bigint NOT NULL,
	receipt_id bigint,
	tag_id bigint NOT NULL,
	PRIMARY KEY(id)
);

COMMIT;

-- Inserting 7 rows into public.receipt_tags
-- Insert batch #1
INSERT INTO public.receipt_tags (id, instance_id, receipt_id, tag_id) VALUES
(1, 838, NULL, 8),
(4, 839, NULL, 9),
(5, 840, NULL, 5),
(6, 840, NULL, 12),
(7, 840, NULL, 15),
(8, 841, NULL, 5),
(9, 841, NULL, 12);

-- END TABLE public.receipt_tags

-- BEGIN TABLE public.receipts
DROP TABLE IF EXISTS public.receipts CASCADE;
BEGIN;

CREATE TABLE IF NOT EXISTS public.receipts (
	id bigint DEFAULT nextval('receipts_sampleid_seq'::regclass) NOT NULL,
	instance_id bigint NOT NULL,
	updated_by bigint,
	updated_at timestamp without time zone,
	original_link character varying NOT NULL,
	image_filename character varying,
	PRIMARY KEY(id)
);

COMMIT;

-- Table public.receipts contains no data. No inserts have been generated.
-- Inserting 0 rows into public.receipts


-- END TABLE public.receipts

-- BEGIN TABLE public.tags
DROP TABLE IF EXISTS public.tags CASCADE;
BEGIN;

CREATE TABLE IF NOT EXISTS public.tags (
	id bigint DEFAULT nextval('tags_sampleid_seq'::regclass) NOT NULL,
	tag_name character varying NOT NULL,
	tag_description character varying NOT NULL,
	PRIMARY KEY(id)
);

COMMIT;

-- Inserting 15 rows into public.tags
-- Insert batch #1
INSERT INTO public.tags (id, tag_name, tag_description) VALUES
(1, 'spam', 'spam'),
(2, 'ads', 'predatory advertising'),
(3, 'antiblackness', 'open anti-black hostility'),
(4, 'homomisia', 'open same-sex relationship hostility'),
(5, 'transmisia', 'open transgender hostility'),
(6, 'antisemetism', 'open anti-jewish hostility'),
(7, 'ableism', 'open anti-disability hostility'),
(8, 'csam', 'child sexual abuse material'),
(9, 'nudity', 'nudity without content warnings'),
(10, 'misogyny', 'open hostility towards women'),
(11, 'misogynoir', 'open hostility towards black women'),
(12, 'harassment', 'continued, targeted abuse'),
(13, 'misandry', 'open hostility towards men'),
(14, 'violence', 'targeted speech meant to convey violent actions'),
(15, 'doxing', 'deliberate actions to publicise the identity of others');

-- END TABLE public.tags

-- BEGIN TABLE public.users
DROP TABLE IF EXISTS public.users CASCADE;
BEGIN;

CREATE TABLE IF NOT EXISTS public.users (
	id bigint DEFAULT nextval('users_sampleid_seq'::regclass) NOT NULL,
	username character varying NOT NULL,
	fullname character varying,
	fedi_address character varying NOT NULL,
	active boolean DEFAULT true NOT NULL,
	PRIMARY KEY(id)
);

COMMIT;

-- Inserting 1 row into public.users
-- Insert batch #1
INSERT INTO public.users (id, username, fullname, fedi_address, active) VALUES
(1, 'fyrfli', 'camille frantz', '@fyrfli@diaspora.im', 'True');

-- END TABLE public.users

ALTER TABLE IF EXISTS public.instances
	ADD CONSTRAINT instances_users_fk
	FOREIGN KEY (record_update_by)
	REFERENCES public.users (id);

ALTER TABLE IF EXISTS public.receipt_tags
	ADD CONSTRAINT instance_id_fkey
	FOREIGN KEY (instance_id, instance_id)
	REFERENCES public.instances (id, id)
	ON DELETE CASCADE;

ALTER TABLE IF EXISTS public.receipt_tags
	ADD CONSTRAINT tag_id
	FOREIGN KEY (tag_id)
	REFERENCES public.tags (id);

ALTER TABLE IF EXISTS public.receipt_tags
	ADD CONSTRAINT receipt_id_fkey
	FOREIGN KEY (receipt_id)
	REFERENCES public.receipts (id);

ALTER TABLE IF EXISTS public.receipts
	ADD CONSTRAINT instance_id_fkey
	FOREIGN KEY (instance_id, instance_id)
	REFERENCES public.instances (id, id)
	ON DELETE CASCADE;

ALTER TABLE IF EXISTS public.receipts
	ADD CONSTRAINT update_by_fkey
	FOREIGN KEY (updated_by)
	REFERENCES public.users (id);

