Skip to main content

max / makenotwork

1.1 KB · 24 lines History Blame Raw
1 -- Storage tracking
2 ALTER TABLE users ADD COLUMN storage_used_bytes BIGINT NOT NULL DEFAULT 0;
3 ALTER TABLE users ADD COLUMN max_file_override_bytes BIGINT;
4 ALTER TABLE users ADD COLUMN grandfathered_until TIMESTAMPTZ;
5
6 -- File sizes on items (audio + cover — versions already have file_size_bytes)
7 ALTER TABLE items ADD COLUMN audio_file_size_bytes BIGINT;
8 ALTER TABLE items ADD COLUMN cover_file_size_bytes BIGINT;
9
10 -- Grace period enforcement marker
11 ALTER TABLE creator_subscriptions ADD COLUMN grace_enforced_at TIMESTAMPTZ;
12
13 -- Backfill storage_used from versions + insertions (items backfilled separately via S3 HEAD)
14 UPDATE users u SET storage_used_bytes = COALESCE((
15 SELECT SUM(v.file_size_bytes) FROM versions v
16 JOIN items i ON v.item_id = i.id JOIN projects p ON i.project_id = p.id
17 WHERE p.user_id = u.id AND v.file_size_bytes IS NOT NULL
18 ), 0) + COALESCE((
19 SELECT SUM(ci.file_size) FROM content_insertions ci WHERE ci.user_id = u.id
20 ), 0);
21
22 -- Grandfather all existing creators for 6 months
23 UPDATE users SET grandfathered_until = '2026-09-22T00:00:00Z' WHERE can_create_projects = true;
24