add service
All checks were successful
Deploy Smart Search Backend / deploy (push) Successful in 1m41s
All checks were successful
Deploy Smart Search Backend / deploy (push) Successful in 1m41s
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE users (
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
email TEXT NOT NULL,
|
email TEXT NOT NULL,
|
||||||
email_hash TEXT NOT NULL UNIQUE,
|
email_hash TEXT NOT NULL UNIQUE,
|
||||||
@@ -14,7 +14,7 @@ CREATE TABLE users (
|
|||||||
created_at TIMESTAMP DEFAULT now()
|
created_at TIMESTAMP DEFAULT now()
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_users_email_hash ON users(email_hash);
|
CREATE INDEX IF NOT EXISTS idx_users_email_hash ON users(email_hash);
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE users;
|
DROP TABLE users;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE sessions (
|
CREATE TABLE IF NOT EXISTS sessions (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
user_id INT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
user_id INT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||||
access_token TEXT NOT NULL,
|
access_token TEXT NOT NULL,
|
||||||
@@ -11,8 +11,8 @@ CREATE TABLE sessions (
|
|||||||
revoked_at TIMESTAMP
|
revoked_at TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_sessions_refresh ON sessions(refresh_token);
|
CREATE INDEX IF NOT EXISTS idx_sessions_refresh ON sessions(refresh_token);
|
||||||
CREATE INDEX idx_sessions_user_id ON sessions(user_id);
|
CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions(user_id);
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE sessions;
|
DROP TABLE sessions;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE invite_codes (
|
CREATE TABLE IF NOT EXISTS invite_codes (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
user_id INT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
user_id INT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||||
code BIGINT NOT NULL UNIQUE,
|
code BIGINT NOT NULL UNIQUE,
|
||||||
@@ -10,8 +10,8 @@ CREATE TABLE invite_codes (
|
|||||||
expires_at TIMESTAMP NOT NULL
|
expires_at TIMESTAMP NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_invite_codes_code ON invite_codes(code);
|
CREATE INDEX IF NOT EXISTS idx_invite_codes_code ON invite_codes(code);
|
||||||
CREATE INDEX idx_invite_codes_user_id ON invite_codes(user_id);
|
CREATE INDEX IF NOT EXISTS idx_invite_codes_user_id ON invite_codes(user_id);
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE invite_codes;
|
DROP TABLE invite_codes;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE mailing_status (
|
CREATE TABLE IF NOT EXISTS mailing_status (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
status_name TEXT NOT NULL UNIQUE
|
status_name TEXT NOT NULL UNIQUE
|
||||||
);
|
);
|
||||||
@@ -8,7 +8,8 @@ INSERT INTO mailing_status (status_name) VALUES
|
|||||||
('pending'),
|
('pending'),
|
||||||
('in_progress'),
|
('in_progress'),
|
||||||
('completed'),
|
('completed'),
|
||||||
('failed');
|
('failed')
|
||||||
|
ON CONFLICT (status_name) DO NOTHING;
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE mailing_status;
|
DROP TABLE mailing_status;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE requests_for_suppliers (
|
CREATE TABLE IF NOT EXISTS requests_for_suppliers (
|
||||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
user_id INT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
user_id INT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||||
request_txt TEXT,
|
request_txt TEXT,
|
||||||
@@ -11,8 +11,8 @@ CREATE TABLE requests_for_suppliers (
|
|||||||
created_at TIMESTAMP DEFAULT now()
|
created_at TIMESTAMP DEFAULT now()
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_requests_user_id ON requests_for_suppliers(user_id);
|
CREATE INDEX IF NOT EXISTS idx_requests_user_id ON requests_for_suppliers(user_id);
|
||||||
CREATE INDEX idx_requests_status ON requests_for_suppliers(mailling_status_id);
|
CREATE INDEX IF NOT EXISTS idx_requests_status ON requests_for_suppliers(mailling_status_id);
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE requests_for_suppliers;
|
DROP TABLE requests_for_suppliers;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE suppliers (
|
CREATE TABLE IF NOT EXISTS suppliers (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
request_id UUID NOT NULL REFERENCES requests_for_suppliers(id) ON DELETE CASCADE,
|
request_id UUID NOT NULL REFERENCES requests_for_suppliers(id) ON DELETE CASCADE,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -10,7 +10,7 @@ CREATE TABLE suppliers (
|
|||||||
created_at TIMESTAMP DEFAULT now()
|
created_at TIMESTAMP DEFAULT now()
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_suppliers_request_id ON suppliers(request_id);
|
CREATE INDEX IF NOT EXISTS idx_suppliers_request_id ON suppliers(request_id);
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE suppliers;
|
DROP TABLE suppliers;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE request_token_usage (
|
CREATE TABLE IF NOT EXISTS request_token_usage (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
request_id UUID NOT NULL REFERENCES requests_for_suppliers(id) ON DELETE CASCADE,
|
request_id UUID NOT NULL REFERENCES requests_for_suppliers(id) ON DELETE CASCADE,
|
||||||
request_token_count INT DEFAULT 0,
|
request_token_count INT DEFAULT 0,
|
||||||
@@ -9,7 +9,7 @@ CREATE TABLE request_token_usage (
|
|||||||
created_at TIMESTAMP DEFAULT now()
|
created_at TIMESTAMP DEFAULT now()
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_token_usage_request_id ON request_token_usage(request_id);
|
CREATE INDEX IF NOT EXISTS idx_token_usage_request_id ON request_token_usage(request_id);
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE request_token_usage;
|
DROP TABLE request_token_usage;
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
ALTER TABLE users ADD CONSTRAINT balance_non_negative CHECK (balance >= 0);
|
ALTER TABLE users ADD CONSTRAINT balance_non_negative CHECK (balance >= 0);
|
||||||
|
|
||||||
ALTER TABLE invite_codes ADD CONSTRAINT used_count_non_negative CHECK (used_count >= 0);
|
|
||||||
ALTER TABLE invite_codes ADD CONSTRAINT used_count_within_limit CHECK (used_count <= can_be_used_count);
|
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
ALTER TABLE users DROP CONSTRAINT IF EXISTS balance_non_negative;
|
ALTER TABLE users DROP CONSTRAINT IF EXISTS balance_non_negative;
|
||||||
ALTER TABLE invite_codes DROP CONSTRAINT IF EXISTS used_count_non_negative;
|
|
||||||
ALTER TABLE invite_codes DROP CONSTRAINT IF EXISTS used_count_within_limit;
|
|
||||||
Reference in New Issue
Block a user