24 lines
1.1 KiB
SQL
24 lines
1.1 KiB
SQL
CREATE TABLE "tasks"."metric_sources" (
|
|
"key" text PRIMARY KEY,
|
|
"value" numeric(14,2),
|
|
"detail" jsonb,
|
|
"computed_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"attempted_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"error" text
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "tasks"."goals" ADD COLUMN "metric_key" text;--> statement-breakpoint
|
|
ALTER TABLE "tasks"."goals" ADD COLUMN "metric_detail" jsonb;--> statement-breakpoint
|
|
ALTER TABLE "tasks"."goals" ADD COLUMN "metric_computed_at" timestamp with time zone;--> statement-breakpoint
|
|
-- Grants (default privileges already cover new tasks tables; explicit for safety). Prod only.
|
|
DO $$
|
|
BEGIN
|
|
IF current_user = 'personal' AND EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'personal_app') THEN
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON tasks.metric_sources TO personal_app;
|
|
END IF;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
-- Stan's income goal gets the auto metric (salary from money.recurring + Moneybird side income).
|
|
UPDATE tasks.goals SET metric_key = 'own-net-income-monthly'
|
|
WHERE metric_key IS NULL AND title ILIKE '€10k net/month into own Revolut%';
|