-- CreateExtension
CREATE EXTENSION IF NOT EXISTS "postgis";

-- Required to use postgis extension :
-- set the search_path to both public and territory (where is postgis) AND the current schema
SET search_path TO matcher, territory, public;

-- CreateTable
CREATE TABLE "ad" (
    "uuid" UUID NOT NULL,
    "driver" BOOLEAN NOT NULL,
    "passenger" BOOLEAN NOT NULL,
    "frequency" INTEGER NOT NULL,
    "from_date" DATE NOT NULL,
    "to_date" DATE NOT NULL,
    "mon_time" TIMESTAMPTZ NOT NULL,
    "tue_time" TIMESTAMPTZ NOT NULL,
    "wed_time" TIMESTAMPTZ NOT NULL,
    "thu_time" TIMESTAMPTZ NOT NULL,
    "fri_time" TIMESTAMPTZ NOT NULL,
    "sat_time" TIMESTAMPTZ NOT NULL,
    "sun_time" TIMESTAMPTZ NOT NULL,
    "mon_margin" INTEGER NOT NULL,
    "tue_margin" INTEGER NOT NULL,
    "wed_margin" INTEGER NOT NULL,
    "thu_margin" INTEGER NOT NULL,
    "fri_margin" INTEGER NOT NULL,
    "sat_margin" INTEGER NOT NULL,
    "sun_margin" INTEGER NOT NULL,
    "driver_duration" INTEGER NOT NULL,
    "driver_distance" INTEGER NOT NULL,
    "passenger_duration" INTEGER NOT NULL,
    "passenger_distance" INTEGER NOT NULL,
    "origin_type" SMALLINT NOT NULL,
    "destination_type" SMALLINT NOT NULL,
    "waypoints" geography(LINESTRING) NOT NULL,
    "direction" geography(LINESTRING) NOT NULL,
    "fwd_azimuth" INTEGER NOT NULL,
    "back_azimuth" INTEGER NOT NULL,
    "seats_driver" SMALLINT NOT NULL,
    "seats_passenger" SMALLINT NOT NULL,
    "seats_used" SMALLINT NOT NULL,
    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

    CONSTRAINT "ad_pkey" PRIMARY KEY ("uuid")
);

-- CreateIndex
CREATE INDEX "ad_driver_idx" ON "ad"("driver");

-- CreateIndex
CREATE INDEX "ad_passenger_idx" ON "ad"("passenger");

-- CreateIndex
CREATE INDEX "ad_from_date_idx" ON "ad"("from_date");

-- CreateIndex
CREATE INDEX "ad_to_date_idx" ON "ad"("to_date");

-- CreateIndex
CREATE INDEX "ad_fwd_azimuth_idx" ON "ad"("fwd_azimuth");

-- CreateIndex
CREATE INDEX "direction_idx" ON "ad" USING GIST ("direction");
