diff --git a/migration/database-seed.sql b/migration/database-seed.sql index 0d3b66a8a2606a637ddfe3213bb02315566d02cf..aa57ee26836e4949a9d853d847c1388db7450561 100644 --- a/migration/database-seed.sql +++ b/migration/database-seed.sql @@ -43,6 +43,8 @@ CREATE TABLE "posts" ( "refer_post" integer DEFAULT null, "refer_post_owner" integer DEFAULT null, "tags" varchar[] DEFAULT '{}', + "likes" integer DEFAULT 0, + "shares" integer DEFAULT 0, PRIMARY KEY ("post_id", "owner_id"), CONSTRAINT no_self_refer CHECK (refer_post <> post_id AND refer_post_owner <> owner_id) @@ -158,6 +160,20 @@ CREATE TRIGGER validate_post_reference FOR EACH ROW EXECUTE FUNCTION validate_post_reference(); +CREATE FUNCTION increment_like() RETURNS TRIGGER AS $$ + BEGIN + UPDATE posts + SET likes = likes + 1 + WHERE owner_id = NEW.post_owner_id AND post_id = NEW.post_id; + RETURN NEW; + END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER increment_like + AFTER INSERT ON likes + FOR EACH ROW + EXECUTE FUNCTION increment_like(); + -- add basic roles INSERT INTO user_roles(role) VALUES('admin'); INSERT INTO user_roles(role) VALUES('moderator');