Refactoring
This commit is contained in:
@@ -1,19 +1,19 @@
|
||||
# ====================================================================
|
||||
# AfterWork Server - Configuration PRODUCTION (profil prod)
|
||||
# ====================================================================
|
||||
# Charg<EFBFBD> avec QUARKUS_PROFILE=prod (Kubernetes ConfigMap).
|
||||
# Ce fichier remplace application-production.properties pour coh<EFBFBD>rence
|
||||
# avec le d<EFBFBD>ploiement (QUARKUS_PROFILE=prod).
|
||||
# Charg? avec QUARKUS_PROFILE=prod (Kubernetes ConfigMap).
|
||||
# Ce fichier remplace application-production.properties pour coh?rence
|
||||
# avec le d?ploiement (QUARKUS_PROFILE=prod).
|
||||
|
||||
# ====================================================================
|
||||
# HTTP - Chemin de base de l'API
|
||||
# ====================================================================
|
||||
# Permet d'acc<EFBFBD>der <EFBFBD> l'API via https://api.lions.dev/afterwork
|
||||
# Permet d'acc?der ? l'API via https://api.lions.dev/afterwork
|
||||
#
|
||||
# IMPORTANT - Configuration Ingress requise:
|
||||
# Cette application utilise quarkus.http.root-path pour <EFBFBD>tre "context-aware",
|
||||
# ce qui permet <EFBFBD> Swagger UI de g<EFBFBD>n<EFBFBD>rer les bonnes URLs.
|
||||
# L'Ingress Kubernetes DOIT pr<EFBFBD>server le chemin complet (PAS de rewrite-target).
|
||||
# Cette application utilise quarkus.http.root-path pour ?tre "context-aware",
|
||||
# ce qui permet ? Swagger UI de g?n?rer les bonnes URLs.
|
||||
# L'Ingress Kubernetes DOIT pr?server le chemin complet (PAS de rewrite-target).
|
||||
#
|
||||
# Configuration Ingress correcte:
|
||||
# - path: /afterwork
|
||||
@@ -32,9 +32,9 @@ quarkus.smallrye-openapi.path=/openapi
|
||||
quarkus.smallrye-openapi.servers=https://api.lions.dev
|
||||
|
||||
# ====================================================================
|
||||
# Base de donn<EFBFBD>es PostgreSQL
|
||||
# Base de donn?es PostgreSQL
|
||||
# ====================================================================
|
||||
# IMPORTANT: Les credentials doivent <EFBFBD>tre fournis via variables d'environnement
|
||||
# IMPORTANT: Les credentials doivent ?tre fournis via variables d'environnement
|
||||
# en production (Kubernetes Secrets ou Vault).
|
||||
quarkus.datasource.db-kind=postgresql
|
||||
quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST:postgresql-service.postgresql.svc.cluster.local}:${DB_PORT:5432}/${DB_NAME:mic-after-work-server-impl-quarkus-main}
|
||||
@@ -53,9 +53,10 @@ quarkus.flyway.locations=db/migration
|
||||
quarkus.flyway.baseline-on-migrate=true
|
||||
quarkus.flyway.baseline-version=1
|
||||
quarkus.flyway.validate-on-migrate=true
|
||||
|
||||
(ex: V1_1 ajout?e apr?s que la prod ait d?j? V2..V19).
|
||||
, donc sans risque sur une base d?j? migr?e.
|
||||
# ====================================================================
|
||||
# Hibernate ORM - Mode validation (Flyway g<EFBFBD>re le schema)
|
||||
# Hibernate ORM - Mode validation (Flyway g?re le schema)
|
||||
# ====================================================================
|
||||
quarkus.hibernate-orm.database.generation=none
|
||||
quarkus.hibernate-orm.log.sql=false
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
-- V1_1__Create_Base_Tables_For_Fresh_Db.sql
|
||||
-- Création des tables de base pour une base de données vierge.
|
||||
-- À exécuter après V1__Baseline lorsque le schéma n'a pas été créé par Hibernate.
|
||||
-- Les migrations V2, V3, V4, V7+ supposent que users, establishments et events existent.
|
||||
|
||||
-- Table users (structure minimale attendue par V3 et l'entité Users)
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
first_name VARCHAR(100) NOT NULL DEFAULT '',
|
||||
last_name VARCHAR(100) NOT NULL DEFAULT '',
|
||||
email VARCHAR(100) NOT NULL UNIQUE,
|
||||
password_hash VARCHAR(255) NOT NULL DEFAULT '',
|
||||
role VARCHAR(50) NOT NULL,
|
||||
profile_image_url VARCHAR(500),
|
||||
bio VARCHAR(500),
|
||||
loyalty_points INTEGER NOT NULL DEFAULT 0,
|
||||
preferences JSONB NOT NULL DEFAULT '{}',
|
||||
is_verified BOOLEAN NOT NULL DEFAULT false,
|
||||
is_online BOOLEAN NOT NULL DEFAULT false,
|
||||
last_seen TIMESTAMP,
|
||||
is_active BOOLEAN NOT NULL DEFAULT true
|
||||
);
|
||||
|
||||
-- Table establishments (V4 renomme total_ratings_count -> total_reviews_count)
|
||||
CREATE TABLE IF NOT EXISTS establishments (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
type VARCHAR(100) NOT NULL,
|
||||
address VARCHAR(500) NOT NULL,
|
||||
city VARCHAR(100) NOT NULL,
|
||||
postal_code VARCHAR(20) NOT NULL,
|
||||
description VARCHAR(2000),
|
||||
phone_number VARCHAR(50),
|
||||
website VARCHAR(500),
|
||||
average_rating DOUBLE PRECISION,
|
||||
total_ratings_count INTEGER,
|
||||
price_range VARCHAR(20),
|
||||
verification_status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
|
||||
is_active BOOLEAN NOT NULL DEFAULT true,
|
||||
latitude DOUBLE PRECISION,
|
||||
longitude DOUBLE PRECISION,
|
||||
manager_id UUID NOT NULL REFERENCES users(id)
|
||||
);
|
||||
|
||||
-- Table events (structure minimale ; V2 et V7 ajoutent les colonnes supplémentaires)
|
||||
CREATE TABLE IF NOT EXISTS events (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
description VARCHAR(1000),
|
||||
start_date TIMESTAMP NOT NULL,
|
||||
end_date TIMESTAMP NOT NULL,
|
||||
category VARCHAR(100),
|
||||
link VARCHAR(500),
|
||||
image_url VARCHAR(500),
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'OPEN',
|
||||
creator_id UUID NOT NULL REFERENCES users(id)
|
||||
);
|
||||
|
||||
-- Table de jointure event_participants (events <-> users)
|
||||
CREATE TABLE IF NOT EXISTS event_participants (
|
||||
event_id UUID NOT NULL REFERENCES events(id) ON DELETE CASCADE,
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (event_id, user_id)
|
||||
);
|
||||
|
||||
-- Table de jointure user_favorite_events (users <-> events)
|
||||
CREATE TABLE IF NOT EXISTS user_favorite_events (
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
event_id UUID NOT NULL REFERENCES events(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (user_id, event_id)
|
||||
);
|
||||
|
||||
-- Index pour les FK et recherches courantes
|
||||
CREATE INDEX IF NOT EXISTS idx_establishments_manager ON establishments(manager_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_events_creator ON events(creator_id);
|
||||
Reference in New Issue
Block a user