- Remove backend Medusa.js (TypeScript) e substitui pelo backend Go (saveinmed-performance-core) - Corrige testes auth.test.ts: alinha paths de API (v1/ sem barra inicial) e campo access_token - Corrige GroupedProductCard.test.tsx: ajusta distância formatada (toFixed) e troca userEvent por fireEvent com fakeTimers - Corrige AuthContext.test.tsx: usa vi.hoisted() para mocks e corrige parênteses no waitFor Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
111 lines
3.3 KiB
SQL
111 lines
3.3 KiB
SQL
CREATE TABLE IF NOT EXISTS companies (
|
|
id UUID PRIMARY KEY,
|
|
cnpj TEXT NOT NULL UNIQUE,
|
|
corporate_name TEXT NOT NULL,
|
|
category TEXT NOT NULL DEFAULT 'farmacia',
|
|
license_number TEXT NOT NULL,
|
|
is_verified BOOLEAN NOT NULL DEFAULT FALSE,
|
|
latitude DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
longitude DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
city TEXT NOT NULL DEFAULT '',
|
|
state TEXT NOT NULL DEFAULT '',
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
updated_at TIMESTAMPTZ NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id UUID PRIMARY KEY,
|
|
company_id UUID NOT NULL REFERENCES companies(id),
|
|
role TEXT NOT NULL DEFAULT 'PHARMACY',
|
|
name TEXT NOT NULL,
|
|
email TEXT NOT NULL UNIQUE,
|
|
password_hash TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
updated_at TIMESTAMPTZ NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS products (
|
|
id UUID PRIMARY KEY,
|
|
seller_id UUID NOT NULL REFERENCES companies(id),
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
batch TEXT NOT NULL,
|
|
expires_at DATE NOT NULL,
|
|
price_cents BIGINT NOT NULL,
|
|
stock BIGINT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
updated_at TIMESTAMPTZ NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS inventory_adjustments (
|
|
id UUID PRIMARY KEY,
|
|
product_id UUID NOT NULL REFERENCES products(id),
|
|
delta BIGINT NOT NULL,
|
|
reason TEXT,
|
|
created_at TIMESTAMPTZ NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS orders (
|
|
id UUID PRIMARY KEY,
|
|
buyer_id UUID NOT NULL REFERENCES companies(id),
|
|
seller_id UUID NOT NULL REFERENCES companies(id),
|
|
status TEXT NOT NULL,
|
|
total_cents BIGINT NOT NULL,
|
|
shipping_recipient_name TEXT,
|
|
shipping_street TEXT,
|
|
shipping_number TEXT,
|
|
shipping_complement TEXT,
|
|
shipping_district TEXT,
|
|
shipping_city TEXT,
|
|
shipping_state TEXT,
|
|
shipping_zip_code TEXT,
|
|
shipping_country TEXT,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
updated_at TIMESTAMPTZ NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS order_items (
|
|
id UUID PRIMARY KEY,
|
|
order_id UUID NOT NULL REFERENCES orders(id),
|
|
product_id UUID NOT NULL REFERENCES products(id),
|
|
quantity BIGINT NOT NULL,
|
|
unit_cents BIGINT NOT NULL,
|
|
batch TEXT NOT NULL,
|
|
expires_at DATE NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS cart_items (
|
|
id UUID PRIMARY KEY,
|
|
buyer_id UUID NOT NULL REFERENCES companies(id),
|
|
product_id UUID NOT NULL REFERENCES products(id),
|
|
quantity BIGINT NOT NULL,
|
|
unit_cents BIGINT NOT NULL,
|
|
batch TEXT,
|
|
expires_at DATE,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
updated_at TIMESTAMPTZ NOT NULL,
|
|
UNIQUE (buyer_id, product_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS reviews (
|
|
id UUID PRIMARY KEY,
|
|
order_id UUID NOT NULL UNIQUE REFERENCES orders(id),
|
|
buyer_id UUID NOT NULL REFERENCES companies(id),
|
|
seller_id UUID NOT NULL REFERENCES companies(id),
|
|
rating INT NOT NULL CHECK (rating BETWEEN 1 AND 5),
|
|
comment TEXT,
|
|
created_at TIMESTAMPTZ NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_reviews_seller_id ON reviews (seller_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS shipments (
|
|
id UUID PRIMARY KEY,
|
|
order_id UUID NOT NULL UNIQUE REFERENCES orders(id),
|
|
carrier TEXT NOT NULL,
|
|
tracking_code TEXT,
|
|
external_tracking TEXT,
|
|
status TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL,
|
|
updated_at TIMESTAMPTZ NOT NULL
|
|
);
|