ch/first commit
This commit is contained in:
parent
060e9d23b8
commit
a3a1830226
27
Makefile
Normal file
27
Makefile
Normal file
@ -0,0 +1,27 @@
|
||||
DB_URL=postgresql://root:secret@localhost:5432/df?sslmode=disable
|
||||
|
||||
network:
|
||||
podman network create df-network
|
||||
|
||||
postgres:
|
||||
podman run --name postgres -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=secret -d postgres:15-alpine
|
||||
|
||||
migratenew:
|
||||
migrate create -ext sql -dir db/migration -seq init_schema
|
||||
|
||||
migrateup:
|
||||
migrate -path db/migration -database $(DB_URL) -verbose up
|
||||
|
||||
migratedown:
|
||||
migrate -path db/migration -database $(DB_URL) -verbose down
|
||||
|
||||
createdb:
|
||||
podman exec -it postgres createdb --username=root --owner=root df
|
||||
|
||||
dropdb:
|
||||
podman exec -it postgres dropdb df
|
||||
|
||||
sqlc:
|
||||
sqlc generate
|
||||
|
||||
.PHONY: postgres migratenew createdb dropdb migrateup migratedown sqlc
|
16
db/migration/000001_init_schema.down.sql
Normal file
16
db/migration/000001_init_schema.down.sql
Normal file
@ -0,0 +1,16 @@
|
||||
DROP TABLE IF EXISTS "customers";
|
||||
DROP TABLE IF EXISTS "providers";
|
||||
DROP TABLE IF EXISTS "returnsLog";
|
||||
DROP TABLE IF EXISTS "returns";
|
||||
DROP TABLE IF EXISTS "payments";
|
||||
DROP TABLE IF EXISTS "documents";
|
||||
DROP TABLE IF EXISTS "persons";
|
||||
DROP TABLE IF EXISTS "mails";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
133
db/migration/000001_init_schema.up.sql
Normal file
133
db/migration/000001_init_schema.up.sql
Normal file
@ -0,0 +1,133 @@
|
||||
CREATE TABLE "mails" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"from" varchar NOT NULL,
|
||||
"to" varchar NOT NULL,
|
||||
"cc" varchar,
|
||||
"timestamp" timestamptz NOT NULL DEFAULT (now()),
|
||||
"subject" varchar NOT NULL,
|
||||
"body" text NOT NULL,
|
||||
"attachments" integer
|
||||
);
|
||||
|
||||
CREATE TABLE "customers" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"username" varchar UNIQUE NOT NULL,
|
||||
"passwordhash" varchar NOT NULL,
|
||||
"firstname" varchar NOT NULL,
|
||||
"lastname" varchar NOT NULL,
|
||||
"birthday" timestamptz NOT NULL,
|
||||
"privacyAccepted" boolean NOT NULL DEFAULT false,
|
||||
"privacyAcceptedDate" timestamptz,
|
||||
"email" varchar UNIQUE NOT NULL,
|
||||
"phone" varchar,
|
||||
"city" varchar NOT NULL,
|
||||
"zip" varchar NOT NULL,
|
||||
"street" varchar NOT NULL,
|
||||
"country" varchar NOT NULL,
|
||||
"token" varchar,
|
||||
"tokenValid" boolean DEFAULT false,
|
||||
"tokenExpiration" timestamptz NOT NULL DEFAULT (now()),
|
||||
"creator" varchar NOT NULL,
|
||||
"created" timestamptz NOT NULL DEFAULT (now()),
|
||||
"changer" varchar NOT NULL,
|
||||
"changed" timestamptz NOT NULL DEFAULT (now())
|
||||
);
|
||||
|
||||
CREATE TABLE "persons" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"customerID" bigserial,
|
||||
"firstname" varchar NOT NULL,
|
||||
"lastname" varchar NOT NULL,
|
||||
"birthday" timestamptz NOT NULL,
|
||||
"city" varchar NOT NULL,
|
||||
"zip" varchar NOT NULL,
|
||||
"street" varchar NOT NULL,
|
||||
"country" varchar NOT NULL,
|
||||
"documents" bigserial,
|
||||
"creator" varchar NOT NULL,
|
||||
"created" timestamptz NOT NULL DEFAULT (now()),
|
||||
"changer" varchar NOT NULL,
|
||||
"changed" timestamptz NOT NULL DEFAULT (now())
|
||||
);
|
||||
|
||||
CREATE TABLE "documents" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"type" varchar NOT NULL,
|
||||
"path" varchar NOT NULL,
|
||||
"url" varchar NOT NULL,
|
||||
"valid" boolean NOT NULL DEFAULT false,
|
||||
"validDate" timestamptz,
|
||||
"validatedBy" varchar
|
||||
);
|
||||
|
||||
CREATE TABLE "payments" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"customerID" bigserial NOT NULL,
|
||||
"paymentCategory" varchar NOT NULL,
|
||||
"bankname" varchar,
|
||||
"IBAN" varchar,
|
||||
"BIC" varchar,
|
||||
"paypalAccount" varchar,
|
||||
"paypalID" varchar,
|
||||
"paymentSystem" varchar,
|
||||
"type" varchar NOT NULL,
|
||||
"creator" varchar NOT NULL,
|
||||
"created" timestamptz NOT NULL DEFAULT (now()),
|
||||
"changer" varchar NOT NULL,
|
||||
"changed" timestamptz NOT NULL DEFAULT (now())
|
||||
);
|
||||
|
||||
CREATE TABLE "providers" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"description" text NOT NULL,
|
||||
"category" varchar NOT NULL,
|
||||
"email" varchar NOT NULL,
|
||||
"creator" varchar NOT NULL,
|
||||
"created" timestamptz NOT NULL DEFAULT (now()),
|
||||
"changer" varchar NOT NULL,
|
||||
"changed" timestamptz NOT NULL DEFAULT (now())
|
||||
);
|
||||
|
||||
CREATE TABLE "returns" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"personID" bigserial NOT NULL,
|
||||
"providerID" bigserial NOT NULL,
|
||||
"name" varchar NOT NULL,
|
||||
"description" text NOT NULL,
|
||||
"category" varchar NOT NULL,
|
||||
"email" varchar NOT NULL,
|
||||
"status" varchar NOT NULL,
|
||||
"creator" varchar NOT NULL,
|
||||
"created" timestamptz NOT NULL DEFAULT (now()),
|
||||
"changer" varchar NOT NULL,
|
||||
"changed" timestamptz NOT NULL DEFAULT (now())
|
||||
);
|
||||
|
||||
CREATE TABLE "returnsLog" (
|
||||
"ID" bigserial UNIQUE PRIMARY KEY NOT NULL,
|
||||
"returnsID" bigserial,
|
||||
"mailID" bigserial,
|
||||
"status" varchar,
|
||||
"creator" varchar NOT NULL,
|
||||
"created" timestamptz NOT NULL DEFAULT (now()),
|
||||
"changer" varchar NOT NULL,
|
||||
"changed" timestamptz NOT NULL DEFAULT (now())
|
||||
);
|
||||
|
||||
ALTER TABLE "mails" ADD FOREIGN KEY ("attachments") REFERENCES "documents" ("ID");
|
||||
|
||||
ALTER TABLE "persons" ADD FOREIGN KEY ("customerID") REFERENCES "customers" ("ID");
|
||||
|
||||
ALTER TABLE "persons" ADD FOREIGN KEY ("documents") REFERENCES "documents" ("ID");
|
||||
|
||||
ALTER TABLE "payments" ADD FOREIGN KEY ("customerID") REFERENCES "customers" ("ID");
|
||||
|
||||
ALTER TABLE "returns" ADD FOREIGN KEY ("personID") REFERENCES "persons" ("ID");
|
||||
|
||||
ALTER TABLE "returns" ADD FOREIGN KEY ("providerID") REFERENCES "providers" ("ID");
|
||||
|
||||
ALTER TABLE "returnsLog" ADD FOREIGN KEY ("returnsID") REFERENCES "returns" ("ID");
|
||||
|
||||
ALTER TABLE "returnsLog" ADD FOREIGN KEY ("mailID") REFERENCES "mails" ("ID");
|
5
go.mod
Normal file
5
go.mod
Normal file
@ -0,0 +1,5 @@
|
||||
module github.com/itsscb/df
|
||||
|
||||
go 1.21
|
||||
|
||||
toolchain go1.21.1
|
Loading…
x
Reference in New Issue
Block a user