Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added length limits and constraint for max length #12

Merged
merged 3 commits into from
Apr 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* text=auto eol=lf
*.cs -text
112 changes: 56 additions & 56 deletions Database/init-db.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,148 +4,148 @@ CREATE SCHEMA common;

CREATE TABLE IF NOT EXISTS events.event (
"id" SERIAL PRIMARY KEY,
"name" varchar NOT NULL,
"name" text NOT NULL CONSTRAINT events_event_name_maxlength CHECK (LENGTH("name") <= 64),
"address_id" integer NOT NULL,
"description" text NOT NULL,
"description" text NOT NULL CONSTRAINT events_event_description_maxlength CHECK (LENGTH("description") <= 4048),
"organizer_id" integer NOT NULL,
"start_at" timestamptz NOT NULL,
"end_at" timestamptz NOT NULL,
"created_at" timestamptz NOT NULL,
"updated_at" timestamptz NOT NULL,
"slug" varchar NOT NULL,
"slug" text NOT NULL CONSTRAINT events_event_slug_maxlength CHECK (LENGTH("slug") <= 128),
"status_id" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS events.participant (
"id" SERIAL PRIMARY KEY,
"event_id" integer NOT NULL,
"user_id" integer NOT NULL,
"status_id" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS common.status (
"id" SERIAL PRIMARY KEY,
"name" varchar(255) NOT NULL,
"name" text NOT NULL CONSTRAINT common_status_name_maxlength CHECK (LENGTH("name") <= 32),
"object_type_id" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS events.tag (
"id" SERIAL PRIMARY KEY,
"name" varchar(255) NOT NULL
"name" text NOT NULL CONSTRAINT events_tag_name_maxlength CHECK (LENGTH("name") <= 64)
);

CREATE TABLE IF NOT EXISTS events.event_tag (
"event_id" integer NOT NULL,
"tag_id" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS users.user (
"id" SERIAL PRIMARY KEY,
"name" varchar(255) NOT NULL,
"surname" varchar(255) NOT NULL,
"username" varchar(255) NOT NULL,
"password" varchar(255) NOT NULL,
"name" text NOT NULL CONSTRAINT users_user_name_maxlength CHECK (LENGTH(name) <= 64),
"surname" text NOT NULL CONSTRAINT users_user_surname_maxlength CHECK (LENGTH("surname") <= 64),
"username" text NOT NULL CONSTRAINT users_user_username_maxlength CHECK (LENGTH("username") <= 64),
"password" text NOT NULL,
"created_at" timestamptz NOT NULL,
"updated_at" timestamptz NOT NULL,
"role_id" integer NOT NULL,
"email" varchar(255) NOT NULL,
"email" text NOT NULL CONSTRAINT users_user_email_maxlength CHECK (LENGTH("email") <= 255),
"is_active" boolean NOT NULL,
"address_id" integer NOT NULL,
"phone" varchar(255)
"phone" text CONSTRAINT users_user_phone_maxlength CHECK (LENGTH("phone") <= 16)
);

CREATE TABLE IF NOT EXISTS events.parameter (
"id" SERIAL PRIMARY KEY,
"key" varchar(255) NOT NULL,
"value" varchar(255) NOT NULL
"key" text NOT NULL CONSTRAINT events_patameter_key_maxlength CHECK (LENGTH("key") <= 32),
"value" text NOT NULL CONSTRAINT events_patameter_value_maxlength CHECK (LENGTH("value") <= 64)
);

CREATE TABLE IF NOT EXISTS events.event_parameter (
"parameter_id" integer NOT NULL,
"event_id" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS users.role (
"id" SERIAL PRIMARY KEY,
"name" varchar(255) NOT NULL
"name" text NOT NULL CHECK (LENGTH("name") <= 32)
);

CREATE TABLE IF NOT EXISTS events.comment (
"id" SERIAL PRIMARY KEY,
"event_id" integer NOT NULL,
"content" varchar(255) NOT NULL,
"content" text NOT NULL CONSTRAINT events_comment_content_maxlength CHECK (LENGTH("content") <= 1024),
"created_at" timestamptz NOT NULL,
"user_id" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS common.address (
"id" SERIAL PRIMARY KEY,
"city" varchar(255) NOT NULL,
"country" varchar(255) NOT NULL,
"street" varchar(255) NOT NULL,
"state" varchar(255) NOT NULL,
"zip_code" varchar(255)
"city" text NOT NULL CONSTRAINT common_address_city_maxlength CHECK (LENGTH("city") <= 64),
"country" text NOT NULL CONSTRAINT common_address_country_maxlength CHECK (LENGTH("country") <= 64),
"street" text NOT NULL CONSTRAINT common_address_street_maxlength CHECK (LENGTH("street") <= 64),
"state" text NOT NULL CONSTRAINT common_address_state_maxlength CHECK (LENGTH("state") <= 64),
"zip_code" text CONSTRAINT common_address_zip_code_maxlength CHECK (LENGTH("zip_code") <= 8)
);

CREATE TABLE IF NOT EXISTS common.image (
"id" SERIAL PRIMARY KEY,
"image_data" bytea NOT NULL,
"object_type_id" integer NOT NULL,
"object_id" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS common.object_type (
"id" SERIAL PRIMARY KEY,
"name" varchar(255) NOT NULL
"name" text NOT NULL CONSTRAINT common_object_type_name_maxlength CHECK (LENGTH("name") <= 32)
);

CREATE TABLE IF NOT EXISTS users.user_interest (
"user_id" integer NOT NULL,
"interest_id" integer NOT NULL,
"level" integer NOT NULL
);

CREATE TABLE IF NOT EXISTS users.interest (
"id" SERIAL PRIMARY KEY,
"name" varchar(255) NOT NULL
"name" text NOT NULL CONSTRAINT users_interest_name_maxlength CHECK (LENGTH("name") <= 32),
);

ALTER TABLE users.user ADD FOREIGN KEY ("role_id") REFERENCES users.role ("id");

ALTER TABLE events.event ADD FOREIGN KEY ("address_id") REFERENCES common.address ("id");

ALTER TABLE events.comment ADD FOREIGN KEY ("event_id") REFERENCES events.event ("id");

ALTER TABLE events.event ADD FOREIGN KEY ("organizer_id") REFERENCES users.user ("id");

ALTER TABLE events.participant ADD FOREIGN KEY ("event_id") REFERENCES events.event ("id");

ALTER TABLE events.participant ADD FOREIGN KEY ("user_id") REFERENCES users.user ("id");

ALTER TABLE events.comment ADD FOREIGN KEY ("user_id") REFERENCES users.user ("id");

ALTER TABLE common.image ADD FOREIGN KEY ("object_type_id") REFERENCES common.object_type ("id");

ALTER TABLE users.user_interest ADD FOREIGN KEY ("user_id") REFERENCES users.user ("id");

ALTER TABLE users.user ADD FOREIGN KEY ("address_id") REFERENCES common.address ("id");

ALTER TABLE events.participant ADD FOREIGN KEY ("status_id") REFERENCES common.status ("id");

ALTER TABLE events.event_parameter ADD FOREIGN KEY ("parameter_id") REFERENCES events.parameter ("id");

ALTER TABLE events.event_parameter ADD FOREIGN KEY ("event_id") REFERENCES events.event ("id");

ALTER TABLE events.event_tag ADD FOREIGN KEY ("tag_id") REFERENCES events.tag ("id");

ALTER TABLE events.event_tag ADD FOREIGN KEY ("event_id") REFERENCES events.event ("id");

ALTER TABLE common.status ADD FOREIGN KEY ("object_type_id") REFERENCES common.object_type ("id");

ALTER TABLE events.event ADD FOREIGN KEY ("status_id") REFERENCES common.status ("id");

ALTER TABLE users.user_interest ADD FOREIGN KEY ("interest_id") REFERENCES users.interest ("id");

INSERT INTO users.role ("id", "name") VALUES
(1, 'User'),
(2, 'Organiser'),
Expand All @@ -159,7 +159,7 @@ INSERT INTO common.status ("id", "name", "object_type_id") VALUES
(2, 'Wezmę udział', 2),
(3, 'Zrealizowano', 1),
(4, 'W trakcie realizacji', 1);

INSERT INTO events.tag ("id", "name") VALUES
(1, 'Technologia'),
(2, 'Sport'),
Expand Down