added manager, driver, order, route, vehicle, warehouse endpoints,models and migrations.

This commit is contained in:
2026-03-23 18:28:01 +05:00
parent f710cda3f3
commit 6e8750a566
22 changed files with 2463 additions and 111 deletions

View File

@@ -12,6 +12,7 @@ CREATE TABLE IF NOT EXISTS users (
updated_at TIMESTAMPTZ,
last_login_at TIMESTAMPTZ
);
-- +goose StatementEnd
-- +goose Down

View File

@@ -1,9 +1,25 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
CREATE TABLE IF NOT EXISTS orders (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
created_by_id UUID REFERENCES users(id) ON DELETE SET NULL,
driver_id UUID REFERENCES drivers(id) ON DELETE SET NULL,
manager_id UUID REFERENCES managers(id) ON DELETE SET NULL,
origin_warehouse_id UUID REFERENCES warehouses(id) ON DELETE SET NULL,
origin_address VARCHAR(255),
destination_address VARCHAR(255) NOT NULL,
cargo_description TEXT,
weight_kg NUMERIC(10,2),
volume_m3 NUMERIC(10,2),
status VARCHAR(20) DEFAULT 'pending',
total_price NUMERIC(12,2),
created_at TIMESTAMPTZ DEFAULT NOW(),
assigned_at TIMESTAMPTZ,
delivered_at TIMESTAMPTZ
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
DROP TABLE IF EXISTS orders;
-- +goose StatementEnd

View File

@@ -0,0 +1,14 @@
-- +goose Up
-- +goose StatementBegin
CREATE TABLE IF NOT EXISTS managers (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID UNIQUE REFERENCES users(id) ON DELETE CASCADE,
warehouse_id UUID REFERENCES warehouses(id) ON DELETE SET NULL,
slug VARCHAR(120) UNIQUE NOT NULL
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS managers;
-- +goose StatementEnd

View File

@@ -0,0 +1,19 @@
-- +goose Up
-- +goose StatementBegin
CREATE TABLE IF NOT EXISTS warehouses (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
slug VARCHAR(120) UNIQUE NOT NULL,
name VARCHAR(150) NOT NULL,
address VARCHAR(255) NOT NULL,
city VARCHAR(100),
latitude NUMERIC(9,6),
longitude NUMERIC(9,6),
status VARCHAR(20) DEFAULT 'active',
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS warehouses;
-- +goose StatementEnd

View File

@@ -0,0 +1,20 @@
-- +goose Up
-- +goose StatementBegin
CREATE TABLE IF NOT EXISTS routes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
order_id UUID UNIQUE REFERENCES orders(id) ON DELETE CASCADE,
driver_id UUID REFERENCES drivers(id) ON DELETE SET NULL,
coordinates JSONB,
current_index INTEGER DEFAULT 0,
started_at TIMESTAMPTZ,
finished_at TIMESTAMPTZ,
distance_km NUMERIC(10,2),
duration_sec INTEGER,
status VARCHAR(20) DEFAULT 'pending'
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS routes;
-- +goose StatementEnd