Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
77d7827
feat: ajout des tables et énumératons liées à la buvette
clembs Nov 11, 2025
53c6ca0
feat: helpers de schéma
clembs Nov 11, 2025
30b469e
feat: module products
clembs Nov 11, 2025
a4e63b9
Merge remote-tracking branch 'origin/main' into feat/buvette
clembs Nov 11, 2025
6889aa9
refactor: transactions -> sales + product_sales
clembs Nov 20, 2025
707f56c
feat: utilitaires firefly III
clembs Nov 20, 2025
5277afc
feat: créer & lire ventes
clembs Nov 20, 2025
163cad0
refactor: typer complètement le modèle produit
clembs Nov 24, 2025
7e58a97
feat: GET;PATCH;DELETE /sales/:id
clembs Nov 24, 2025
0fb9e13
feat: récupérer ventes d'un produit
clembs Nov 24, 2025
a731d72
fix: défaut à true pour isOnSale sur produit
clembs Nov 24, 2025
d843711
fix: total = epsilon(prix * qté)
clembs Nov 24, 2025
eeb285b
feat: supprimer un produit d'une vente
gerald-lbn Dec 4, 2025
980a6d9
Merge remote-tracking branch 'origin/main' into feat/buvette
clembs Dec 7, 2025
935682b
feat: Add stock movement type to stockMovementsTable
gerald-lbn Dec 22, 2025
f9289ca
feat: add stockMovementsModel
gerald-lbn Dec 22, 2025
0332bc5
feat: add StockMovementsService with the abilities to modify and delete
gerald-lbn Dec 22, 2025
187324a
feat: add stockMovementsModule module for CRUD operations
gerald-lbn Dec 22, 2025
5214e13
feat: register stockMovementsModule within the elysia app
gerald-lbn Dec 22, 2025
e03b2bd
feat: get stock movements and specific stock movement
gerald-lbn Dec 24, 2025
a6ff8a1
feat: définition APIPostTransaction
clembs Dec 25, 2025
7e870bd
fix: un produit peut être nul
clembs Dec 25, 2025
479f321
Merge remote-tracking branch 'origin/main' into feat/buvette
clembs Jan 5, 2026
7e05eda
feat: installation de prettier en dépendance dév
clembs Jan 9, 2026
5ea6a63
Merge branch 'main' into feat/buvette
gerald-lbn Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/backend/.env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_DB=pnscore
DATABASE_URL=postgresql://user:password@db:5432/pnscore
DATABASE_URL=postgresql://user:password@localhost:5432/pnscore
FIREFLY_TOKEN=token
FIREFLY_API_URL=https://firefly.pns.gg/api
50 changes: 50 additions & 0 deletions apps/backend/drizzle/0001_demonic_exiles.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
CREATE TYPE "public"."payment_methods" AS ENUM('VISA', 'MASTERCARD', 'CB', 'CASH', 'PAYPAL');--> statement-breakpoint
CREATE TYPE "public"."product_categories" AS ENUM('MERCHANDIZING', 'DRINKS', 'FOOD');--> statement-breakpoint
CREATE TYPE "public"."stock_movement_types" AS ENUM('BUY', 'SALE', 'LOSS', 'RETURN');--> statement-breakpoint
CREATE TYPE "public"."units_of_measurement" AS ENUM('UNIT', 'KILOGRAM', 'LITER');--> statement-breakpoint
CREATE TABLE "product_sales" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"price" numeric(12, 2) NOT NULL,
"quantity" numeric NOT NULL,
"product_id" uuid NOT NULL,
"sale_id" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE "products" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"name" text NOT NULL,
"allergens" text,
"price" numeric(12, 2) NOT NULL,
"category" "product_categories" NOT NULL,
"quantity" numeric NOT NULL,
"unit_of_measurement" "units_of_measurement" DEFAULT 'UNIT' NOT NULL,
"is_on_sale" boolean DEFAULT true NOT NULL,
"location" text
);
--> statement-breakpoint
CREATE TABLE "sales" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"payment_method" "payment_methods" NOT NULL,
"stancer_id" text,
"event_id" uuid,
"stock_movement_id" uuid
);
--> statement-breakpoint
CREATE TABLE "stock_movements" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"product_id" uuid NOT NULL,
"quantity" numeric NOT NULL,
"price" numeric(12, 2) NOT NULL,
"firefly_id" text,
"event_id" uuid
);
--> statement-breakpoint
ALTER TABLE "tournaments" ALTER COLUMN "bracket_type" SET NOT NULL;--> statement-breakpoint
ALTER TABLE "product_sales" ADD CONSTRAINT "product_sales_product_id_products_id_fk" FOREIGN KEY ("product_id") REFERENCES "public"."products"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "product_sales" ADD CONSTRAINT "product_sales_sale_id_sales_id_fk" FOREIGN KEY ("sale_id") REFERENCES "public"."sales"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "sales" ADD CONSTRAINT "sales_event_id_events_id_fk" FOREIGN KEY ("event_id") REFERENCES "public"."events"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "sales" ADD CONSTRAINT "sales_stock_movement_id_stock_movements_id_fk" FOREIGN KEY ("stock_movement_id") REFERENCES "public"."stock_movements"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "stock_movements" ADD CONSTRAINT "stock_movements_product_id_products_id_fk" FOREIGN KEY ("product_id") REFERENCES "public"."products"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "stock_movements" ADD CONSTRAINT "stock_movements_event_id_events_id_fk" FOREIGN KEY ("event_id") REFERENCES "public"."events"("id") ON DELETE set null ON UPDATE no action;
9 changes: 9 additions & 0 deletions apps/backend/drizzle/0002_damp_spyke.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CREATE TYPE "public"."tournament_bracket_types" AS ENUM('ROUND-ROBIN', 'SIMPLE', 'DOUBLE', 'MATCHMAKING', 'OTHER');--> statement-breakpoint
ALTER TABLE "sales" DROP CONSTRAINT "sales_stock_movement_id_stock_movements_id_fk";
--> statement-breakpoint
ALTER TABLE "tournaments" ALTER COLUMN "bracket_type" SET DEFAULT 'DOUBLE'::"public"."tournament_bracket_types";--> statement-breakpoint
ALTER TABLE "tournaments" ALTER COLUMN "bracket_type" SET DATA TYPE "public"."tournament_bracket_types" USING "bracket_type"::"public"."tournament_bracket_types";--> statement-breakpoint
ALTER TABLE "tournaments" ALTER COLUMN "bracket_type" DROP NOT NULL;--> statement-breakpoint
ALTER TABLE "product_sales" ADD COLUMN "index" integer NOT NULL;--> statement-breakpoint
ALTER TABLE "stock_movements" ADD COLUMN "type" "stock_movement_types" NOT NULL;--> statement-breakpoint
ALTER TABLE "sales" ADD CONSTRAINT "sales_stock_movement_id_stock_movements_id_fk" FOREIGN KEY ("stock_movement_id") REFERENCES "public"."stock_movements"("id") ON DELETE set null ON UPDATE no action;
Loading