diff --git a/Dockerfile b/Dockerfile index 2cc3185..cc16e6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,4 +28,4 @@ ENV INFISICAL_SECRET_PATHS="/exchange,/shared" EXPOSE 8000 -CMD ["sh", "-c", "node scripts/load-secrets.mjs && . ./.env.infisical && npx prisma migrate deploy && node dist/index.js"] +CMD ["sh", "-c", "node scripts/load-secrets.mjs && . ./.env.infisical && npx prisma migrate resolve --applied 0_init 2>/dev/null; npx prisma migrate deploy && node dist/index.js"] diff --git a/prisma/migrations/0_init/migration.sql b/prisma/migrations/0_init/migration.sql new file mode 100644 index 0000000..bf88e8e --- /dev/null +++ b/prisma/migrations/0_init/migration.sql @@ -0,0 +1,81 @@ +-- CreateSchema +CREATE SCHEMA IF NOT EXISTS "public"; + +-- CreateTable +CREATE TABLE "offers" ( + "id" SERIAL NOT NULL, + "uuid" TEXT NOT NULL, + "team_uuid" VARCHAR(100) NOT NULL, + "status" VARCHAR(20) NOT NULL DEFAULT 'active', + "workflow_status" VARCHAR(20) NOT NULL DEFAULT 'pending', + "workflow_error" TEXT, + "location_uuid" VARCHAR(100), + "location_name" VARCHAR(255) NOT NULL DEFAULT '', + "location_country" VARCHAR(100) NOT NULL DEFAULT '', + "location_country_code" VARCHAR(10) NOT NULL DEFAULT '', + "location_latitude" DOUBLE PRECISION, + "location_longitude" DOUBLE PRECISION, + "product_uuid" VARCHAR(100) NOT NULL, + "product_name" VARCHAR(255) NOT NULL, + "category_name" VARCHAR(255) NOT NULL DEFAULT '', + "quantity" DECIMAL(12,2) NOT NULL, + "unit" VARCHAR(20) NOT NULL DEFAULT 'ton', + "price_per_unit" DECIMAL(12,2) NOT NULL, + "currency" VARCHAR(10) NOT NULL DEFAULT 'USD', + "terminus_schema_id" VARCHAR(255), + "terminus_document_id" VARCHAR(255), + "description" TEXT, + "valid_until" DATE, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "offers_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "calculations" ( + "id" SERIAL NOT NULL, + "uuid" TEXT NOT NULL, + "product_uuid" VARCHAR(100) NOT NULL, + "quantity" DECIMAL(12,2) NOT NULL, + "source_location_uuid" VARCHAR(100) NOT NULL, + "user_id" VARCHAR(255) NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "calculations_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "suppliers" ( + "id" SERIAL NOT NULL, + "uuid" TEXT NOT NULL, + "team_uuid" VARCHAR(100) NOT NULL, + "kyc_profile_uuid" VARCHAR(100), + "name" VARCHAR(255) NOT NULL, + "description" TEXT, + "country" VARCHAR(100) NOT NULL DEFAULT '', + "country_code" VARCHAR(10) NOT NULL DEFAULT '', + "logo_url" VARCHAR(500), + "latitude" DOUBLE PRECISION, + "longitude" DOUBLE PRECISION, + "is_verified" BOOLEAN NOT NULL DEFAULT false, + "is_active" BOOLEAN NOT NULL DEFAULT true, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "suppliers_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "offers_uuid_key" ON "offers"("uuid"); + +-- CreateIndex +CREATE UNIQUE INDEX "calculations_uuid_key" ON "calculations"("uuid"); + +-- CreateIndex +CREATE UNIQUE INDEX "suppliers_uuid_key" ON "suppliers"("uuid"); + +-- CreateIndex +CREATE UNIQUE INDEX "suppliers_team_uuid_key" ON "suppliers"("team_uuid"); +