feat(ADM-018): completed feature
This commit is contained in:
31
project/migrations/019_reviews.js
Normal file
31
project/migrations/019_reviews.js
Normal file
@@ -0,0 +1,31 @@
|
||||
/** Verified-purchase reviews. */
|
||||
|
||||
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
|
||||
export const up = (pgm) => {
|
||||
pgm.sql(`
|
||||
CREATE TABLE reviews_reviews (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id uuid NOT NULL,
|
||||
product_id uuid NOT NULL,
|
||||
order_id uuid NOT NULL,
|
||||
order_item_id uuid NOT NULL UNIQUE,
|
||||
rating integer NOT NULL,
|
||||
title text NOT NULL,
|
||||
body text NOT NULL,
|
||||
status text NOT NULL DEFAULT 'pending',
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now(),
|
||||
CONSTRAINT reviews_reviews_rating_check CHECK (rating BETWEEN 1 AND 5),
|
||||
CONSTRAINT reviews_reviews_status_check CHECK (status IN ('pending','published','rejected'))
|
||||
)
|
||||
`);
|
||||
pgm.sql(
|
||||
'CREATE INDEX reviews_reviews_product_status_idx ON reviews_reviews (product_id, status)',
|
||||
);
|
||||
pgm.sql('CREATE INDEX reviews_reviews_user_id_idx ON reviews_reviews (user_id)');
|
||||
};
|
||||
|
||||
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
|
||||
export const down = (pgm) => {
|
||||
pgm.sql('DROP TABLE IF EXISTS reviews_reviews');
|
||||
};
|
||||
Reference in New Issue
Block a user