Phase 1 ops core: base blocks, feedback, canary fixes
- Add app/ekonomi/anvandare/prenumerationer/butik/feedback blocks to computeOpsSummary. - New feedback table, POST /api/feedback, GDPR erasure wiring. - Canary: only count unverified/rejected published recipes; treat verified/editorial as safe. - Add 'rejected' recipe verification status enum value. - Fix food-safety lint baseline: remove egg/cured fish from raw-protein list, relax genomstekt regex, add safe-cooking phrases to seed recipes. - Seed recipes now get verificationStatus=editorial. - Tests: ops summary blocks, feedback route, me.residual cleanup.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
-- Feedback-tabell för buggrapporter och önskemål (doc §2).
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'feedback_type') THEN
|
||||
CREATE TYPE feedback_type AS ENUM ('bug', 'onskemal');
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'feedback_status') THEN
|
||||
CREATE TYPE feedback_status AS ENUM ('oppen', 'pagar', 'stangd');
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS feedback (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id uuid REFERENCES users(id) ON DELETE SET NULL,
|
||||
typ feedback_type NOT NULL,
|
||||
rubrik varchar(200) NOT NULL,
|
||||
text text NOT NULL,
|
||||
status feedback_status NOT NULL DEFAULT 'oppen',
|
||||
plattform varchar(16),
|
||||
app_version varchar(32),
|
||||
created_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS feedback_status_created_idx
|
||||
ON feedback (status, created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS feedback_user_idx
|
||||
ON feedback (user_id, created_at DESC);
|
||||
Reference in New Issue
Block a user