First swagger version, added auto-migrate on startup

This commit is contained in:
2026-03-15 20:40:41 +05:00
parent fb0269f804
commit b38f9cf8fd
18 changed files with 984 additions and 30 deletions

View File

@@ -1,9 +1,9 @@
-- +goose Up
-- +goose StatementBegin
CREATE EXTENSION IF NOT EXISTS pg_tgrm;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP EXTENSION IF EXISTS pg_tgrm;
DROP EXTENSION IF EXISTS pg_trgm;
-- +goose StatementEnd

View File

@@ -7,7 +7,6 @@ CREATE TABLE IF NOT EXISTS users (
password_hash VARCHAR(255) NOT NULL,
full_name VARCHAR(150),
avatar_url VARCHAR(512),
role VARCHAR(50) DEFAULT 'student',
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ,
last_login_at TIMESTAMPTZ

View File

@@ -1,9 +1,22 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
CREATE TABLE IF NOT EXISTS vehicles (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
plate_number VARCHAR(20) UNIQUE NOT NULL,
brand VARCHAR(50),
model VARCHAR(50),
year INTEGER,
capacity_kg NUMERIC(10,2),
capacity_m3 NUMERIC(10,2),
status VARCHAR(20) DEFAULT 'available',
slug VARCHAR(120) UNIQUE NOT NULL
);
CREATE INDEX idx_vehicles_slug ON vehicles(slug);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
DROP TABLE IF EXISTS vehicles;
-- +goose StatementEnd

View File

@@ -1,9 +1,18 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
CREATE TABLE IF NOT EXISTS drivers(
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
vehicle_id UUID REFERENCES vehicles(id) ON DELETE SET NULL,
license_number VARCHAR (50) NOT NULL,
license_expiry DATE NOT NULL,
rating NUMERIC(3,2) DEFAULT 5.00,
slug VARCHAR(120) UNIQUE NOT NULL,
status VARCHAR(20) DEFAULT 'available'
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
DROP TABLE IF EXISTS drivers;
-- +goose StatementEnd

View File

@@ -1,9 +0,0 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
-- +goose StatementEnd

View File

@@ -0,0 +1,14 @@
-- +goose Up
-- +goose StatementBegin
CREATE TABLE IF NOT EXISTS roles(
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
title VARCHAR(20),
code VARCHAR(20)
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS roles;
-- +goose StatementEnd

View File

@@ -0,0 +1,13 @@
-- +goose Up
-- +goose StatementBegin
CREATE TABLE IF NOT EXISTS user_roles(
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
role_id UUID REFERENCES roles(id) ON DELETE CASCADE,
PRIMARY KEY (user_id, role_id)
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS user_roles;
-- +goose StatementEnd