Rough Campaign module skeleton.

This commit is contained in:
2026-07-22 18:42:08 +03:00
parent b8ffacd916
commit 67a04ef82f
10 changed files with 237 additions and 50 deletions
-11
View File
@@ -1,11 +0,0 @@
BEGIN;
-- Version dependency checks
DO $$
ASSERT current_module_version('PROFILES') = 1, 'Dependency version mismatch: PROFILES';
$$ LANGUAGE plpgsql;
-- Plugin version history
INSERT INTO version_history (component, from_version, to_version, author) VALUES ('AWESOME_PLUGIN', 0, 1, 'Initial Creation');
COMMIT;
+41
View File
@@ -0,0 +1,41 @@
BEGIN;
-- Version dependency checks
DO $$
ASSERT current_module_version('PROFILES') = 1, 'Dependency version mismatch: PROFILES';
ASSERT current_module_version('EVENT_TRACKER') = 2, 'Dependency version mismatch: EVENT_TRACKER';
$$ LANGUAGE plpgsql;
-- Plugin version history
INSERT INTO version_history (component, from_version, to_version, author) VALUES ('PLUSCAMPAIGN', 0, 1, 'Initial Creation');
CREATE TABLE campaigns(
campaign_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
communityid INTEGER NOT NULL REFERENCES communities(communityid) ON DELETE CASCADE ON UPDATE CASCADE,
target_rewards INTEGER NOT NULL,
campaign_name TEXT NOT NULL,
started_at TIMESTAMPTZ,
completed_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
_timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE campaign_rewards_earned(
earned_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
campaign_id INTEGER NOT NULL REFERENCES campaigns ON DELETE CASCADE ON UPDATE CASCADE,
profileid INTEGER NOT NULL REFERENCES user_profiles(profileid) ON DELETE CASCADE ON UPDATE CASCADE,
event_id INTEGER REFERENCES events ON DELETE SET NULL ON UPDATE CASCADE,
twitch_user_id TEXT,
twitch_user_name TEXT,
fulfilled_at TIMESTAMPTZ,
fulfilled_note TEXT,
earned_at TIMESTAMPTZ NOT NULL,
modnote TEXT,
earned_from TEXT NOT NULL,
_timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
-- TODO: Possibly reference table for form destination?
COMMIT;