datasets/bat/setup/db_blog/postgres/setup.sql (499 lines of code) (raw):

CREATE TABLE public.tbl_attachments( attachment_id integer NOT NULL, post_id integer, user_id integer, file_name character varying(255), file_path character varying(255), file_size integer, file_type character varying(50), upload_date timestamp without time zone, description text, is_active boolean, visibility_status character varying(20), download_count integer, file_extension character varying(10), uploaded_by_ip character varying(15), last_modified timestamp without time zone, expiration_date timestamp without time zone, tags_file jsonb, category_file jsonb, access_permissions jsonb, storage_location character varying(255), metadata jsonb, is_featured boolean, parent_attachment_id integer); CREATE SEQUENCE public.tbl_attachments_attachment_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_attachments_attachment_id_seq OWNED BY public.tbl_attachments.attachment_id; ALTER TABLE ONLY public.tbl_attachments ALTER COLUMN attachment_id SET DEFAULT nextval('public.tbl_attachments_attachment_id_seq'::regclass); CREATE TABLE public.tbl_categories( category_id integer NOT NULL, created_by integer, updated_by integer, name character varying(255), description text, created_at timestamp without time zone, updated_at timestamp without time zone, parent_category integer, slug character varying(255), image character varying(255), count integer, visibility boolean, is_edited boolean); CREATE SEQUENCE public.tbl_categories_category_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_categories_category_id_seq OWNED BY public.tbl_categories.category_id; CREATE TABLE public.tbl_categories_hierarchy( category_hierarchy_id integer NOT NULL, category_id integer, created_by integer, updated_by integer, name character varying(255), description text, created_at timestamp without time zone, updated_at timestamp without time zone, status character varying(50), visibility character varying(50), orden_priority integer, icon character varying(255), color character varying(50), metadata text, parent_category_name character varying(255)); CREATE SEQUENCE public.tbl_categories_hierarchy_category_hierarchy_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_categories_hierarchy_category_hierarchy_id_seq OWNED BY public.tbl_categories_hierarchy.category_hierarchy_id; CREATE TABLE public.tbl_comments( comment_id integer NOT NULL, content text, user_id integer, post_id integer, parent_comment_id integer, likes_count integer, created_at timestamp without time zone, updated_at timestamp without time zone, is_approved boolean, dislikes_count integer, report_count integer, is_deleted boolean, user_ip character varying(255), user_agent character varying(255), is_flagged boolean, reply_count integer, mentions jsonb, attachments jsonb, metadata jsonb, is_edited boolean); CREATE SEQUENCE public.tbl_comments_comment_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_comments_comment_id_seq OWNED BY public.tbl_comments.comment_id; CREATE TABLE public.tbl_country( country_name character varying(255) NOT NULL, country_id integer, continent character varying(255), region character varying(255), x double precision, y double precision); CREATE TABLE public.tbl_followers( follower_id integer NOT NULL, following_id integer, created_at timestamp without time zone, updated_at timestamp without time zone, follower_data jsonb); CREATE SEQUENCE public.tbl_followers_follower_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_followers_follower_id_seq OWNED BY public.tbl_followers.follower_id; CREATE TABLE public.tbl_labels( label_id integer NOT NULL, creator_id integer, updated_by integer, name character varying(255), description text, created_at timestamp without time zone, updated_at timestamp without time zone, post_count integer, visibility_status character varying(50), is_active boolean, usage_frequency integer, parent_label_id integer); CREATE SEQUENCE public.tbl_labels_label_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_labels_label_id_seq OWNED BY public.tbl_labels.label_id; CREATE TABLE public.tbl_media( media_id integer NOT NULL, post_id integer, type character varying(255), url character varying(255), description text, upload_date timestamp without time zone, updated_at timestamp without time zone, filename character varying(255), file_size integer, caption text, uploader_id integer, visibility character varying(50), access_rights json, file_path character varying(255), metadata json, HASH character varying(255), is_encrypted boolean, encryption_key character varying(255), encryption_algorithm character varying(50), status_id integer); CREATE SEQUENCE public.tbl_media_media_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_media_media_id_seq OWNED BY public.tbl_media.media_id; CREATE TABLE public.tbl_notifications( notification_id integer NOT NULL, user_id integer, notification_type character varying(255), sender_id integer, post_id integer, comment_id integer, notification_message text, notification_date timestamp without time zone, is_read boolean, is_archived boolean, is_deleted boolean, link_to_notification character varying(255), notification_priority integer, additional_data json, notification_subject character varying(255), notification_status character varying(50), notification_action character varying(50), related_user_id integer, source_application character varying(255), notification_category character varying(255), expiration_date timestamp without time zone, delivery_method character varying(50), notification_channel character varying(50), notification_language character varying(50), recipient_group character varying(255), notification_tags json, notification_expiry_time timestamp without time zone, notification_context json, notification_origin character varying(255)); CREATE SEQUENCE public.tbl_notifications_notification_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_notifications_notification_id_seq OWNED BY public.tbl_notifications.notification_id; CREATE TABLE public.tbl_posts( post_id integer NOT NULL, user_id integer, title character varying(255), content text, published_at timestamp without time zone, is_published boolean, views_count integer, likes_count integer, shares_count integer, created_at timestamp without time zone, updated_at timestamp without time zone, slug character varying(255), excerpt text, status_id integer, category_id integer, dislikes_count integer, comments_count integer, is_featured boolean, author_name character varying(255), image_url character varying(255), tags json, reading_time integer, external_link character varying(255), metadata json); CREATE SEQUENCE public.tbl_posts_post_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_posts_post_id_seq OWNED BY public.tbl_posts.post_id; CREATE TABLE public.tbl_posts_tags( post_id integer NOT NULL, tag_id integer NOT NULL, comments json, label_status character varying(50), label_at timestamp without time zone); CREATE TABLE public.tbl_private_messages( message_id integer NOT NULL, sender_id integer, receiver_id integer, subject character varying(255), body text, sending_time timestamp without time zone, is_read boolean, is_archived boolean, is_deleted_by_sender boolean, is_deleted_by_receiver boolean, is_flagged boolean, priority integer, attachment_id integer, conversation_id integer, status character varying(50), parent_message_id integer, read_timestamp timestamp without time zone, message_data json); CREATE SEQUENCE public.tbl_private_messages_message_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_private_messages_message_id_seq OWNED BY public.tbl_private_messages.message_id; CREATE TABLE public.tbl_reactions( reaction_id integer NOT NULL, comment_id integer, user_id integer, post_id integer, reaction_type character varying(255), reaction_date timestamp without time zone, reaction_score integer, reaction_text text, is_active boolean, reaction_count integer, source_ip character varying(255), device_info json); CREATE SEQUENCE public.tbl_reactions_reaction_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_reactions_reaction_id_seq OWNED BY public.tbl_reactions.reaction_id; CREATE TABLE public.tbl_reports( report_id integer NOT NULL, user_id integer, post_id integer, report_reason character varying(255), report_timestamp timestamp without time zone, is_resolved boolean, resolved_by integer, resolution_timestamp timestamp without time zone, report_comments text, severity_level integer, report_type character varying(50), report_entity_type character varying(50), report_entity_id integer, action_taken text, action_timestamp timestamp without time zone, report_ip_address character varying(15), reported_user_id integer, reported_comment_id integer, reported_user_reputation integer, report_category character varying(50), reported_context_text text, attachments json, flagged_user boolean, report_source character varying(50), report_feedback text, report_verification_status character varying(50), report_mechanism character varying(50), report_priority integer, assigned_to integer, report_history json); CREATE SEQUENCE public.tbl_reports_report_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_reports_report_id_seq OWNED BY public.tbl_reports.report_id; CREATE TABLE public.tbl_status( status_id integer NOT NULL, name character varying(255)); CREATE SEQUENCE public.tbl_status_status_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_status_status_id_seq OWNED BY public.tbl_status.status_id; CREATE TABLE public.tbl_tags( tag_id integer NOT NULL, creator_id integer, category_id integer, name character varying(255), description text, created_at timestamp without time zone, updated_at timestamp without time zone, slug character varying(255), count integer, visibility boolean, active boolean, parent_tag integer, status_id integer, access_level integer, is_approved boolean, metadata json, is_edited boolean); CREATE TABLE public.tbl_tags_hierarchy( tag_hierarchy_id integer NOT NULL, tag_id integer, relationship_type character varying(255), weight numeric(10, 2), created_at timestamp without time zone, updated_at timestamp without time zone, active boolean, description text, creator_id integer, modifier_id integer, is_deleted boolean, deleted_at timestamp without time zone, revision_history json, comments json); CREATE SEQUENCE public.tbl_tags_hierarchy_tag_hierarchy_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_tags_hierarchy_tag_hierarchy_id_seq OWNED BY public.tbl_tags_hierarchy.tag_hierarchy_id; CREATE SEQUENCE public.tbl_tags_tag_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_tags_tag_id_seq OWNED BY public.tbl_tags.tag_id; CREATE TABLE public.tbl_user_activity( activity_id integer NOT NULL, user_id integer, activity_type character varying(255), activity_timestamp timestamp without time zone, post_id integer, comment_id integer, activity_description text, activity_source character varying(255), activity_location character varying(255), activity_duration integer, activity_device character varying(255), activity_status character varying(50), activity_impact character varying(50), activity_privacy_level character varying(50), activity_related_users json, activity_extra_data json, ip_address character varying(15), user_agent character varying(255), url character varying(255), session_id character varying(255), browser character varying(255), operating_system character varying(255), referrer character varying(255), event_id integer, error_message text, location_coordinates json, session_duration integer); CREATE SEQUENCE public.tbl_user_activity_activity_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_user_activity_activity_id_seq OWNED BY public.tbl_user_activity.activity_id; CREATE TABLE public.tbl_user_roles( role_id integer NOT NULL, created_by integer, updated_by integer, description character varying(255), created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, permissions json, role_name character varying(50), is_active boolean, restrictions json, expiry_date date, created_by_ip character varying(50), updated_by_ip character varying(50), created_by_device character varying(100), updated_by_device character varying(100), active_sessions integer, last_sessions json); CREATE SEQUENCE public.tbl_user_roles_role_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.tbl_user_roles_role_id_seq OWNED BY public.tbl_user_roles.role_id; CREATE TABLE public.tbl_users( user_id integer NOT NULL, first_name character varying(255) DEFAULT NULL::character varying, last_name character varying(255) DEFAULT NULL::character varying, username character varying(255) DEFAULT NULL::character varying, password_hash character varying(255) DEFAULT NULL::character varying, social_media_links json, contact_info json, avatar_url character varying(255) DEFAULT NULL::character varying, bio text, website character varying(255) DEFAULT NULL::character varying, created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, notification_preferences character varying(255) DEFAULT NULL::character varying, role_id integer, last_login timestamp without time zone, active character varying(1) DEFAULT NULL::character varying); ALTER TABLE ONLY public.tbl_categories ALTER COLUMN category_id SET DEFAULT nextval('public.tbl_categories_category_id_seq'::regclass); ALTER TABLE ONLY public.tbl_categories_hierarchy ALTER COLUMN category_hierarchy_id SET DEFAULT nextval('public.tbl_categories_hierarchy_category_hierarchy_id_seq'::regclass); ALTER TABLE ONLY public.tbl_comments ALTER COLUMN comment_id SET DEFAULT nextval('public.tbl_comments_comment_id_seq'::regclass); ALTER TABLE ONLY public.tbl_followers ALTER COLUMN follower_id SET DEFAULT nextval('public.tbl_followers_follower_id_seq'::regclass); ALTER TABLE ONLY public.tbl_labels ALTER COLUMN label_id SET DEFAULT nextval('public.tbl_labels_label_id_seq'::regclass); ALTER TABLE ONLY public.tbl_media ALTER COLUMN media_id SET DEFAULT nextval('public.tbl_media_media_id_seq'::regclass); ALTER TABLE ONLY public.tbl_notifications ALTER COLUMN notification_id SET DEFAULT nextval('public.tbl_notifications_notification_id_seq'::regclass); ALTER TABLE ONLY public.tbl_posts ALTER COLUMN post_id SET DEFAULT nextval('public.tbl_posts_post_id_seq'::regclass); ALTER TABLE ONLY public.tbl_private_messages ALTER COLUMN message_id SET DEFAULT nextval('public.tbl_private_messages_message_id_seq'::regclass); ALTER TABLE ONLY public.tbl_reactions ALTER COLUMN reaction_id SET DEFAULT nextval('public.tbl_reactions_reaction_id_seq'::regclass); ALTER TABLE ONLY public.tbl_reports ALTER COLUMN report_id SET DEFAULT nextval('public.tbl_reports_report_id_seq'::regclass); ALTER TABLE ONLY public.tbl_status ALTER COLUMN status_id SET DEFAULT nextval('public.tbl_status_status_id_seq'::regclass); ALTER TABLE ONLY public.tbl_tags ALTER COLUMN tag_id SET DEFAULT nextval('public.tbl_tags_tag_id_seq'::regclass); ALTER TABLE ONLY public.tbl_tags_hierarchy ALTER COLUMN tag_hierarchy_id SET DEFAULT nextval('public.tbl_tags_hierarchy_tag_hierarchy_id_seq'::regclass); ALTER TABLE ONLY public.tbl_user_activity ALTER COLUMN activity_id SET DEFAULT nextval('public.tbl_user_activity_activity_id_seq'::regclass); ALTER TABLE ONLY public.tbl_user_roles ALTER COLUMN role_id SET DEFAULT nextval('public.tbl_user_roles_role_id_seq'::regclass);