refactor: rebrand project to CRM SITECONSEIL (SARL SITECONSEIL)

- Rename all references from E-Cosplay/Ecosplay to SITECONSEIL
- Update entity from Association to SARL SITECONSEIL (Siret: 418664058)
- Update address to 27 rue Le Serurier, 02100 Saint-Quentin
- Update emails: contact@siteconseil.fr, rgpd@siteconseil.fr
- Update hosting from GCP to OVHcloud (Roubaix, Gravelines, Strasbourg, Paris)
- Update legal pages: mentions legales, CGV, RGPD, conformite, hebergement, cookies, CGU
- Add tarifs page with tabs: Site Internet, E-Commerce, Nom de domaine, Esy-Mail, Esy-Mailer, Esy-Tchat, Esy-Meet, Esy-Defender
- Add Discord webhook notification workflow
- Disable deploy and sonarqube workflows
- Update OAuth Keycloak realm to master
- Update logo references to logo_facture.png
- Remove forced image sizing in Liip Imagine filters
- Update SonarQube project key and badge token
- Update tribunal competent to Saint-Quentin
- Move tarif tabs JS to app.js (CSP compliance)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-04-02 18:48:25 +02:00
parent 363cea260b
commit 6fa970e60d
131 changed files with 4470 additions and 1000 deletions

18
.env
View File

@@ -56,23 +56,23 @@ STRIPE_WEBHOOK_SECRET_CONNECT=
STRIPE_MODE=test STRIPE_MODE=test
STRIPE_FEE_RATE=0.015 STRIPE_FEE_RATE=0.015
STRIPE_FEE_FIXED=25 STRIPE_FEE_FIXED=25
ADMIN_EMAIL=contact@e-cosplay.fr ADMIN_EMAIL=contact@siteconseil.fr
###> SonarQube ### ###> SonarQube ###
SONARQUBE_URL=https://sn.esy-web.dev SONARQUBE_URL=https://sn.esy-web.dev
SONARQUBE_BADGE_TOKEN= SONARQUBE_BADGE_TOKEN=sqb_bf06d32640147db064c99d2e893ca63a072630d7
SONARQUBE_PROJECT_KEY=crm-ecosplay SONARQUBE_PROJECT_KEY=crm_siteconseil
###< SonarQube ### ###< SonarQube ###
###> SSO E-Cosplay (Keycloak OIDC) ### ###> SSO SITECONSEIL (Keycloak OIDC) ###
OAUTH_KEYCLOAK_CLIENT_ID=e-ticket OAUTH_KEYCLOAK_CLIENT_ID=crm_siteconseil
OAUTH_KEYCLOAK_CLIENT_SECRET=changeme OAUTH_KEYCLOAK_CLIENT_SECRET=kh1WBbnEzcEZVriXmU7IaxizChReHmIx
OAUTH_KEYCLOAK_URL=https://auth.esy-web.dev OAUTH_KEYCLOAK_URL=https://auth.esy-web.dev
OAUTH_KEYCLOAK_REALM=e-cosplay OAUTH_KEYCLOAK_REALM=master
###< SSO E-Cosplay (Keycloak OIDC) ### ###< SSO SITECONSEIL (Keycloak OIDC) ###
###> Keycloak Admin Service Account ### ###> Keycloak Admin Service Account ###
KEYCLOAK_ADMIN_CLIENT_ID=crm-ecosplay-admin KEYCLOAK_ADMIN_CLIENT_ID=crm-siteconseil-admin
KEYCLOAK_ADMIN_CLIENT_SECRET= KEYCLOAK_ADMIN_CLIENT_SECRET=
###< Keycloak Admin Service Account ### ###< Keycloak Admin Service Account ###

View File

@@ -1 +1 @@
* @jovann @e-cosplay * @jovann @siteconseil

View File

@@ -40,7 +40,7 @@
Infra/Docker — Trivy en remplacement ou complément de Hadolint. Hadolint lint les Dockerfiles, Trivy scanne les images buildées (CVE dans les packages OS + dépendances). Vu ton stack multi-container c'est pertinent. Infra/Docker — Trivy en remplacement ou complément de Hadolint. Hadolint lint les Dockerfiles, Trivy scanne les images buildées (CVE dans les packages OS + dépendances). Vu ton stack multi-container c'est pertinent.
Frontend — Lighthouse CI si tu as des pages publiques côté E-Cosplay. Perf, accessibilité, SEO en une step. Frontend — Lighthouse CI si tu as des pages publiques côté SITECONSEIL. Perf, accessibilité, SEO en une step.
En résumé les ajouts concrets : En résumé les ajouts concrets :
@@ -176,9 +176,9 @@
env: env:
POSTGRES_USER: app POSTGRES_USER: app
POSTGRES_PASSWORD: secret POSTGRES_PASSWORD: secret
POSTGRES_DB: crm_ecosplay POSTGRES_DB: crm_siteconseil
options: >- options: >-
--health-cmd "pg_isready -U app -d crm_ecosplay" --health-cmd "pg_isready -U app -d crm_siteconseil"
--health-interval 5s --health-interval 5s
--health-timeout 5s --health-timeout 5s
--health-retries 5 --health-retries 5
@@ -195,7 +195,7 @@
MEILI_MASTER_KEY: test MEILI_MASTER_KEY: test
MEILI_ENV: development MEILI_ENV: development
env: env:
DATABASE_URL: "postgresql://app:secret@database:5432/crm_ecosplay?serverVersion=16&charset=utf8" DATABASE_URL: "postgresql://app:secret@database:5432/crm_siteconseil?serverVersion=16&charset=utf8"
MESSENGER_TRANSPORT_DSN: "redis://redis:6379/messages" MESSENGER_TRANSPORT_DSN: "redis://redis:6379/messages"
MAILER_DSN: "null://null" MAILER_DSN: "null://null"
MEILISEARCH_URL: "http://meilisearch:7700" MEILISEARCH_URL: "http://meilisearch:7700"
@@ -310,7 +310,7 @@
- name: OWASP Dependency-Check - name: OWASP Dependency-Check
uses: dependency-check/Dependency-Check_Action@main uses: dependency-check/Dependency-Check_Action@main
with: with:
project: 'crm-ecosplay' project: 'crm-siteconseil'
path: '.' path: '.'
format: 'JSON,HTML' format: 'JSON,HTML'
args: > args: >

View File

@@ -17,4 +17,4 @@ jobs:
ssh-keyscan 34.90.187.4 >> ~/.ssh/known_hosts ssh-keyscan 34.90.187.4 >> ~/.ssh/known_hosts
- name: Deploy - name: Deploy
run: ssh bot@34.90.187.4 "cd /var/www/crm-ecosplay && ansible-playbook ansible/deploy.yml -i ansible/hosts.ini --vault-password-file <(echo '${{ secrets.ANSIBLE_VAULT_PASSWORD }}')" run: ssh bot@34.90.187.4 "cd /var/www/crm-siteconseil && ansible-playbook ansible/deploy.yml -i ansible/hosts.ini --vault-password-file <(echo '${{ secrets.ANSIBLE_VAULT_PASSWORD }}')"

View File

@@ -0,0 +1,70 @@
name: Discord Notification
on:
push:
jobs:
notify:
runs_on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Send Discord Embed
run: |
REPO_NAME="${{ gitea.repository }}"
BRANCH="${{ gitea.ref_name }}"
AUTHOR="${{ gitea.actor }}"
COMMIT_SHA="${{ gitea.sha }}"
SHORT_SHA="${COMMIT_SHA:0:7}"
COMMIT_URL="${{ gitea.server_url }}/${REPO_NAME}/commit/${COMMIT_SHA}"
REPO_URL="${{ gitea.server_url }}/${REPO_NAME}"
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
COMMIT_MSG=$(git log -1 --pretty=format:'%s' | head -c 256)
COMMIT_BODY=$(git log -1 --pretty=format:'%b' | head -c 1024)
FILES_CHANGED=$(git diff --stat HEAD~1 HEAD 2>/dev/null | tail -1 || echo "N/A")
FILES_LIST=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | head -20 | sed 's/^/• /' || echo "N/A")
FILE_COUNT=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | wc -l || echo "0")
if [ "$FILE_COUNT" -gt 20 ]; then
REMAINING=$((FILE_COUNT - 20))
FILES_LIST="${FILES_LIST}\n... et ${REMAINING} autres fichiers"
fi
DESCRIPTION="${COMMIT_MSG}"
if [ -n "$COMMIT_BODY" ]; then
DESCRIPTION="${DESCRIPTION}\n\n${COMMIT_BODY}"
fi
FIELDS="["
FIELDS="${FIELDS}{\"name\":\"Branche\",\"value\":\"\`${BRANCH}\`\",\"inline\":true},"
FIELDS="${FIELDS}{\"name\":\"Commit\",\"value\":\"[\`${SHORT_SHA}\`](${COMMIT_URL})\",\"inline\":true},"
FIELDS="${FIELDS}{\"name\":\"Auteur\",\"value\":\"${AUTHOR}\",\"inline\":true},"
FIELDS="${FIELDS}{\"name\":\"Statistiques\",\"value\":\"\`\`\`${FILES_CHANGED}\`\`\`\",\"inline\":false},"
FIELDS="${FIELDS}{\"name\":\"Fichiers modifies\",\"value\":\"\`\`\`${FILES_LIST}\`\`\`\",\"inline\":false}"
FIELDS="${FIELDS}]"
PAYLOAD=$(cat <<EOFPAYLOAD
{
"embeds": [{
"title": "DEPOT CRM SITECONSEIL",
"description": $(echo -e "$DESCRIPTION" | jq -Rs .),
"url": "${COMMIT_URL}",
"color": 16244476,
"fields": ${FIELDS},
"footer": {
"text": "${REPO_NAME}"
},
"timestamp": "${TIMESTAMP}"
}]
}
EOFPAYLOAD
)
curl -s -X POST \
-H "Content-Type: application/json" \
-d "${PAYLOAD}" \
"https://discord.com/api/webhooks/1419573620602044518/ikAdxWxsrrTqMTb5Gh_8ylcoJHlOnq7aJZvR5udoS_fCK56Jk3qpEnJHVKdD8fwuNJF3"

View File

@@ -12,9 +12,9 @@ jobs:
env: env:
POSTGRES_USER: app POSTGRES_USER: app
POSTGRES_PASSWORD: secret POSTGRES_PASSWORD: secret
POSTGRES_DB: crm_ecosplay POSTGRES_DB: crm_siteconseil
options: >- options: >-
--health-cmd "pg_isready -U app -d crm_ecosplay" --health-cmd "pg_isready -U app -d crm_siteconseil"
--health-interval 5s --health-interval 5s
--health-timeout 5s --health-timeout 5s
--health-retries 5 --health-retries 5
@@ -31,7 +31,7 @@ jobs:
MEILI_MASTER_KEY: test MEILI_MASTER_KEY: test
MEILI_ENV: development MEILI_ENV: development
env: env:
DATABASE_URL: "postgresql://app:secret@database:5432/crm_ecosplay?serverVersion=16&charset=utf8" DATABASE_URL: "postgresql://app:secret@database:5432/crm_siteconseil?serverVersion=16&charset=utf8"
MESSENGER_TRANSPORT_DSN: "redis://redis:6379/messages" MESSENGER_TRANSPORT_DSN: "redis://redis:6379/messages"
MAILER_DSN: "null://null" MAILER_DSN: "null://null"
MEILISEARCH_URL: "http://meilisearch:7700" MEILISEARCH_URL: "http://meilisearch:7700"
@@ -95,7 +95,7 @@ jobs:
- name: OWASP Dependency-Check - name: OWASP Dependency-Check
uses: dependency-check/Dependency-Check_Action@main uses: dependency-check/Dependency-Check_Action@main
with: with:
project: 'crm-ecosplay' project: 'crm-siteconseil'
path: '.' path: '.'
format: 'JSON,HTML' format: 'JSON,HTML'
args: > args: >

View File

@@ -49,8 +49,8 @@ install_prod: ## Install les dependances et build les assets pour la prod
## —— Tests ———————————————————————————————————————— ## —— Tests ————————————————————————————————————————
test_db_create: ## Cree la base de donnees de test test_db_create: ## Cree la base de donnees de test
docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_ecosplay -tc "SELECT 1 FROM pg_database WHERE datname = 'crm_ecosplay_test'" | grep -q 1 || \ docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_siteconseil -tc "SELECT 1 FROM pg_database WHERE datname = 'crm_siteconseil_test'" | grep -q 1 || \
docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_ecosplay -c "CREATE DATABASE crm_ecosplay_test" docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_siteconseil -c "CREATE DATABASE crm_siteconseil_test"
test_db_schema: ## Cree/met a jour le schema de la base de test test_db_schema: ## Cree/met a jour le schema de la base de test
docker compose -f docker-compose-dev.yml exec php php bin/console doctrine:schema:update --force --env=test docker compose -f docker-compose-dev.yml exec php php bin/console doctrine:schema:update --force --env=test
@@ -59,8 +59,8 @@ test_db_migrate: ## Execute les migrations sur la base de test
docker compose -f docker-compose-dev.yml exec php php bin/console doctrine:migrations:migrate --no-interaction --env=test docker compose -f docker-compose-dev.yml exec php php bin/console doctrine:migrations:migrate --no-interaction --env=test
test_db_reset: ## Supprime et recree la base de test depuis zero test_db_reset: ## Supprime et recree la base de test depuis zero
docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_ecosplay -c "DROP DATABASE IF EXISTS crm_ecosplay_test" docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_siteconseil -c "DROP DATABASE IF EXISTS crm_siteconseil_test"
docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_ecosplay -c "CREATE DATABASE crm_ecosplay_test" docker compose -f docker-compose-dev.yml exec database psql -U app -d crm_siteconseil -c "CREATE DATABASE crm_siteconseil_test"
$(MAKE) test_db_schema $(MAKE) test_db_schema
test_db_setup: ## Setup complet de la base de test (cree si besoin + schema) test_db_setup: ## Setup complet de la base de test (cree si besoin + schema)

View File

@@ -1,14 +1,14 @@
#!/bin/bash #!/bin/bash
# CRM Ecosplay database backup script # CRM SITECONSEIL database backup script
# Runs every 30 minutes via cron # Runs every 30 minutes via cron
BACKUP_DIR="/var/backups/crm-ecosplay" BACKUP_DIR="/var/backups/crm-siteconseil"
DATE=$(date +%Y%m%d_%H%M%S) DATE=$(date +%Y%m%d_%H%M%S)
FILENAME="crm_ecosplay_${DATE}.sql.gz" FILENAME="crm_siteconseil_${DATE}.sql.gz"
KEEP_DAYS=1 KEEP_DAYS=1
# Dump database via Docker # Dump database via Docker
docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T db-master pg_dump -U {{ db_user | default('crm-ecosplay') }} {{ db_name | default('crm-ecosplay') }} | gzip > "${BACKUP_DIR}/${FILENAME}" docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T db-master pg_dump -U {{ db_user | default('crm-siteconseil') }} {{ db_name | default('crm-siteconseil') }} | gzip > "${BACKUP_DIR}/${FILENAME}"
# Check if backup was created # Check if backup was created
if [ -f "${BACKUP_DIR}/${FILENAME}" ] && [ -s "${BACKUP_DIR}/${FILENAME}" ]; then if [ -f "${BACKUP_DIR}/${FILENAME}" ] && [ -s "${BACKUP_DIR}/${FILENAME}" ]; then
@@ -20,7 +20,7 @@ fi
# Backup uploads # Backup uploads
UPLOADS_FILENAME="uploads_${DATE}.tar.gz" UPLOADS_FILENAME="uploads_${DATE}.tar.gz"
tar -czf "${BACKUP_DIR}/${UPLOADS_FILENAME}" -C /var/www/crm-ecosplay/public uploads 2>/dev/null tar -czf "${BACKUP_DIR}/${UPLOADS_FILENAME}" -C /var/www/crm-siteconseil/public uploads 2>/dev/null
if [ -f "${BACKUP_DIR}/${UPLOADS_FILENAME}" ]; then if [ -f "${BACKUP_DIR}/${UPLOADS_FILENAME}" ]; then
echo "[$(date)] Uploads Backup OK: ${UPLOADS_FILENAME} ($(du -h "${BACKUP_DIR}/${UPLOADS_FILENAME}" | cut -f1))" echo "[$(date)] Uploads Backup OK: ${UPLOADS_FILENAME} ($(du -h "${BACKUP_DIR}/${UPLOADS_FILENAME}" | cut -f1))"
@@ -29,6 +29,6 @@ else
fi fi
# Remove backups older than KEEP_DAYS days # Remove backups older than KEEP_DAYS days
find "${BACKUP_DIR}" -name "crm_ecosplay_*.sql.gz" -mtime +${KEEP_DAYS} -delete find "${BACKUP_DIR}" -name "crm_siteconseil_*.sql.gz" -mtime +${KEEP_DAYS} -delete
find "${BACKUP_DIR}" -name "uploads_*.tar.gz" -mtime +${KEEP_DAYS} -delete find "${BACKUP_DIR}" -name "uploads_*.tar.gz" -mtime +${KEEP_DAYS} -delete
echo "[$(date)] Cleaned backups older than ${KEEP_DAYS} days" echo "[$(date)] Cleaned backups older than ${KEEP_DAYS} days"

View File

@@ -1,17 +1,17 @@
crm.e-cosplay.fr { crm.siteconseil.fr {
tls { tls {
dns cloudflare cfat_rIHZqzCm9GKK3xVnQDNGfu6J91TseIDdTKeuWSFUdf6ccd31 dns cloudflare cfat_rIHZqzCm9GKK3xVnQDNGfu6J91TseIDdTKeuWSFUdf6ccd31
} }
@static path /logo.png /favicon.ico /favicon.png /marker.png /screen.png /manifest.json /site.webmanifest /sw.js /unavailable.html /workbox/* /idb/* /build/* /uploads/* /pwa/* @static path /logo.png /favicon.ico /favicon.png /marker.png /screen.png /manifest.json /site.webmanifest /sw.js /unavailable.html /workbox/* /idb/* /build/* /uploads/* /pwa/*
handle @static { handle @static {
root * /var/www/crm-crm-ecosplay/public root * /var/www/crm-crm-siteconseil/public
file_server file_server
} }
@maintenance file /var/www/crm-ecosplay/public/.update @maintenance file /var/www/crm-siteconseil/public/.update
handle @maintenance { handle @maintenance {
root * /var/www/crm-ecosplay/public root * /var/www/crm-siteconseil/public
rewrite * /maintenance.html rewrite * /maintenance.html
file_server { file_server {
status 503 status 503
@@ -19,7 +19,7 @@ crm.e-cosplay.fr {
} }
handle { handle {
root * /var/www/crm-ecosplay/public root * /var/www/crm-siteconseil/public
php_fastcgi localhost:4568 localhost:4569 { php_fastcgi localhost:4568 localhost:4569 {
root /app/public root /app/public
lb_policy round_robin lb_policy round_robin
@@ -35,7 +35,7 @@ crm.e-cosplay.fr {
handle_errors { handle_errors {
@unavailable expression `{err.status_code} in [502, 503]` @unavailable expression `{err.status_code} in [502, 503]`
handle @unavailable { handle @unavailable {
root * /var/www/crm-ecosplay/public root * /var/www/crm-siteconseil/public
rewrite * /unavailable.html rewrite * /unavailable.html
file_server file_server
} }
@@ -48,6 +48,6 @@ crm.e-cosplay.fr {
} }
log { log {
output file /var/log/caddy/ticket.e-cosplay.fr.log output file /var/log/caddy/ticket.siteconseil.fr.log
} }
} }

View File

@@ -1,6 +1,6 @@
--- ---
# --- Server deployment --- # --- Server deployment ---
- name: Deploy crm-ecosplay to production - name: Deploy crm-siteconseil to production
hosts: production hosts: production
become: true become: true
vars_files: vars_files:
@@ -10,7 +10,7 @@
- name: Enable maintenance mode - name: Enable maintenance mode
command: make maintenance_on command: make maintenance_on
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Get Docker socket GID - name: Get Docker socket GID
stat: stat:
@@ -29,14 +29,14 @@
- name: Deploy .env.local - name: Deploy .env.local
template: template:
src: env.local.j2 src: env.local.j2
dest: /var/www/crm-ecosplay/.env.local dest: /var/www/crm-siteconseil/.env.local
owner: bot owner: bot
group: bot group: bot
mode: "0600" mode: "0600"
- name: Ensure cert directory exists - name: Ensure cert directory exists
file: file:
path: /var/www/crm-ecosplay/config/cert path: /var/www/crm-siteconseil/config/cert
state: directory state: directory
owner: bot owner: bot
group: bot group: bot
@@ -45,7 +45,7 @@
- name: Deploy S/MIME private key - name: Deploy S/MIME private key
copy: copy:
content: "{{ smime_private_key }}" content: "{{ smime_private_key }}"
dest: /var/www/crm-ecosplay/config/cert/private-key.pem dest: /var/www/crm-siteconseil/config/cert/private-key.pem
owner: bot owner: bot
group: bot group: bot
mode: "0600" mode: "0600"
@@ -53,13 +53,13 @@
- name: Pull latest code - name: Pull latest code
command: git pull origin master command: git pull origin master
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
become_user: bot become_user: bot
- name: Deploy PgBouncer config - name: Deploy PgBouncer config
template: template:
src: pgbouncer.ini.j2 src: pgbouncer.ini.j2
dest: /var/www/crm-ecosplay/docker/pgsql/pgbouncer.ini dest: /var/www/crm-siteconseil/docker/pgsql/pgbouncer.ini
owner: bot owner: bot
group: bot group: bot
mode: "0644" mode: "0644"
@@ -67,7 +67,7 @@
- name: Deploy PgBouncer userlist - name: Deploy PgBouncer userlist
template: template:
src: userlist.txt.j2 src: userlist.txt.j2
dest: /var/www/crm-ecosplay/docker/pgsql/userlist.txt dest: /var/www/crm-siteconseil/docker/pgsql/userlist.txt
owner: bot owner: bot
group: bot group: bot
mode: "0644" mode: "0644"
@@ -75,7 +75,7 @@
- name: Deploy docker-compose-prod.yml - name: Deploy docker-compose-prod.yml
template: template:
src: docker-compose-prod.yml.j2 src: docker-compose-prod.yml.j2
dest: /var/www/crm-ecosplay/docker-compose-prod.yml dest: /var/www/crm-siteconseil/docker-compose-prod.yml
owner: bot owner: bot
group: bot group: bot
mode: "0600" mode: "0600"
@@ -83,79 +83,79 @@
- name: Build Docker images - name: Build Docker images
command: make build_prod command: make build_prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Pull Docker images - name: Pull Docker images
command: make pull_prod command: make pull_prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Stop production containers - name: Stop production containers
command: make stop_prod command: make stop_prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Start production containers - name: Start production containers
command: make start_prod command: make start_prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Install PHP dependencies - name: Install PHP dependencies
command: composer install --no-dev --optimize-autoloader command: composer install --no-dev --optimize-autoloader
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
become_user: bot become_user: bot
- name: Install JS dependencies - name: Install JS dependencies
command: bun install command: bun install
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
become_user: bot become_user: bot
- name: Build assets - name: Build assets
command: bun run build command: bun run build
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
become_user: bot become_user: bot
- name: Wait for database to be ready - name: Wait for database to be ready
shell: | shell: |
for i in $(seq 1 30); do for i in $(seq 1 30); do
docker compose -f docker-compose-prod.yml exec -T php php -r "new PDO('pgsql:host=pgbouncer;port=6432;dbname=crm-ecosplay','crm-ecosplay','{{ db_password }}');" 2>/dev/null && exit 0 docker compose -f docker-compose-prod.yml exec -T php php -r "new PDO('pgsql:host=pgbouncer;port=6432;dbname=crm-siteconseil','crm-siteconseil','{{ db_password }}');" 2>/dev/null && exit 0
sleep 1 sleep 1
done done
exit 1 exit 1
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Clear Symfony cache before migration - name: Clear Symfony cache before migration
command: docker compose -f docker-compose-prod.yml exec -T php php bin/console cache:clear --env=prod command: docker compose -f docker-compose-prod.yml exec -T php php bin/console cache:clear --env=prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Clear Redis cache pool (Doctrine L2 + app cache) - name: Clear Redis cache pool (Doctrine L2 + app cache)
command: docker compose -f docker-compose-prod.yml exec -T php php bin/console cache:pool:clear cache.app --env=prod command: docker compose -f docker-compose-prod.yml exec -T php php bin/console cache:pool:clear cache.app --env=prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Run migrations - name: Run migrations
command: make migrate_prod command: make migrate_prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Clear cache after migration - name: Clear cache after migration
command: make clear_prod command: make clear_prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Compile PWA assets - name: Compile PWA assets
command: make pwa_prod command: make pwa_prod
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
- name: Ensure uploads directories exist with correct permissions - name: Ensure uploads directories exist with correct permissions
file: file:
path: "/var/www/crm-ecosplay/public/uploads/{{ item }}" path: "/var/www/crm-siteconseil/public/uploads/{{ item }}"
state: directory state: directory
owner: "1000" owner: "1000"
group: "1000" group: "1000"
@@ -166,7 +166,7 @@
- name: Ensure var/payouts directory exists - name: Ensure var/payouts directory exists
file: file:
path: /var/www/crm-ecosplay/var/payouts path: /var/www/crm-siteconseil/var/payouts
state: directory state: directory
owner: "1000" owner: "1000"
group: "1000" group: "1000"
@@ -183,7 +183,7 @@
- name: Deploy Caddy config - name: Deploy Caddy config
template: template:
src: caddy.j2 src: caddy.j2
dest: /etc/caddy/sites/crm-ecosplay.conf dest: /etc/caddy/sites/crm-siteconseil.conf
owner: root owner: root
group: root group: root
mode: "0644" mode: "0644"
@@ -191,7 +191,7 @@
- name: Create backup directory - name: Create backup directory
file: file:
path: /var/backups/crm-ecosplay path: /var/backups/crm-siteconseil
state: directory state: directory
owner: bot owner: bot
group: bot group: bot
@@ -200,75 +200,75 @@
- name: Deploy backup script - name: Deploy backup script
template: template:
src: backup.sh.j2 src: backup.sh.j2
dest: /var/backups/crm-ecosplay/backup.sh dest: /var/backups/crm-siteconseil/backup.sh
owner: bot owner: bot
group: bot group: bot
mode: "0750" mode: "0750"
- name: Configure backup cron (every 30 minutes) - name: Configure backup cron (every 30 minutes)
cron: cron:
name: "crm-ecosplay database backup" name: "crm-siteconseil database backup"
minute: "*/30" minute: "*/30"
job: "/var/backups/crm-ecosplay/backup.sh >> /var/log/crm-ecosplay-backup.log 2>&1" job: "/var/backups/crm-siteconseil/backup.sh >> /var/log/crm-siteconseil-backup.log 2>&1"
user: bot user: bot
- name: Configure expire pending orders cron (every 5 minutes) - name: Configure expire pending orders cron (every 5 minutes)
cron: cron:
name: "crm-ecosplay expire pending orders" name: "crm-siteconseil expire pending orders"
minute: "*/5" minute: "*/5"
job: "docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T php php bin/console app:orders:expire-pending --env=prod >> /var/log/crm-ecosplay-expire-orders.log 2>&1" job: "docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T php php bin/console app:orders:expire-pending --env=prod >> /var/log/crm-siteconseil-expire-orders.log 2>&1"
user: bot user: bot
- name: Configure messenger monitor cron (every hour) - name: Configure messenger monitor cron (every hour)
cron: cron:
name: "crm-ecosplay messenger monitor" name: "crm-siteconseil messenger monitor"
minute: "0" minute: "0"
job: "docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T php php bin/console app:monitor:messenger --env=prod >> /var/log/crm-ecosplay-messenger.log 2>&1" job: "docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T php php bin/console app:monitor:messenger --env=prod >> /var/log/crm-siteconseil-messenger.log 2>&1"
user: bot user: bot
- name: Configure Meilisearch consistency check cron (daily at 3am) - name: Configure Meilisearch consistency check cron (daily at 3am)
cron: cron:
name: "crm-ecosplay meilisearch consistency" name: "crm-siteconseil meilisearch consistency"
minute: "0" minute: "0"
hour: "3" hour: "3"
job: "docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T php php bin/console app:meilisearch:check-consistency --fix --env=prod >> /var/log/crm-ecosplay-meilisearch.log 2>&1" job: "docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T php php bin/console app:meilisearch:check-consistency --fix --env=prod >> /var/log/crm-siteconseil-meilisearch.log 2>&1"
user: bot user: bot
- name: Configure Stripe sync cron (every 6 hours) - name: Configure Stripe sync cron (every 6 hours)
cron: cron:
name: "crm-ecosplay stripe sync" name: "crm-siteconseil stripe sync"
minute: "0" minute: "0"
hour: "*/6" hour: "*/6"
job: "docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T php php bin/console app:stripe:sync --env=prod >> /var/log/crm-ecosplay-stripe-sync.log 2>&1" job: "docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T php php bin/console app:stripe:sync --env=prod >> /var/log/crm-siteconseil-stripe-sync.log 2>&1"
user: bot user: bot
- name: Configure infra snapshot cron (every 5 minutes) - name: Configure infra snapshot cron (every 5 minutes)
cron: cron:
name: "crm-ecosplay infra snapshot" name: "crm-siteconseil infra snapshot"
minute: "*/5" minute: "*/5"
job: "docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T php php bin/console app:infra:snapshot --env=prod >> /var/log/crm-ecosplay-infra.log 2>&1" job: "docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T php php bin/console app:infra:snapshot --env=prod >> /var/log/crm-siteconseil-infra.log 2>&1"
user: bot user: bot
- name: Configure attestations cleanup cron (daily at 4am) - name: Configure attestations cleanup cron (daily at 4am)
cron: cron:
name: "crm-ecosplay attestations clean" name: "crm-siteconseil attestations clean"
minute: "0" minute: "0"
hour: "4" hour: "4"
job: "docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T php php bin/console app:attestations:clean --env=prod >> /var/log/crm-ecosplay-attestations.log 2>&1" job: "docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T php php bin/console app:attestations:clean --env=prod >> /var/log/crm-siteconseil-attestations.log 2>&1"
user: bot user: bot
- name: Configure services health check cron (every 15 minutes) - name: Configure services health check cron (every 15 minutes)
cron: cron:
name: "crm-ecosplay services check" name: "crm-siteconseil services check"
minute: "*/15" minute: "*/15"
job: "docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec -T php php bin/console app:services:check --env=prod >> /var/log/crm-ecosplay-services.log 2>&1" job: "docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec -T php php bin/console app:services:check --env=prod >> /var/log/crm-siteconseil-services.log 2>&1"
user: bot user: bot
post_tasks: post_tasks:
- name: Disable maintenance mode - name: Disable maintenance mode
command: make maintenance_off command: make maintenance_off
args: args:
chdir: /var/www/crm-ecosplay chdir: /var/www/crm-siteconseil
handlers: handlers:
- name: Reload Caddy - name: Reload Caddy

View File

@@ -1,4 +1,4 @@
name: crm-ecosplay name: crm-siteconseil
services: services:
php: php:
@@ -23,7 +23,7 @@ services:
ports: ports:
- "4568-4569:9000" - "4568-4569:9000"
networks: networks:
- crm_ecosplay - crm_siteconseil
depends_on: depends_on:
pgbouncer: pgbouncer:
condition: service_healthy condition: service_healthy
@@ -42,9 +42,9 @@ services:
cpus: "0.5" cpus: "0.5"
memory: 1G memory: 1G
environment: environment:
POSTGRES_USER: crm-ecosplay POSTGRES_USER: crm-siteconseil
POSTGRES_PASSWORD: {{ db_password }} POSTGRES_PASSWORD: {{ db_password }}
POSTGRES_DB: crm-ecosplay POSTGRES_DB: crm-siteconseil
command: command:
- postgres - postgres
- -c - -c
@@ -65,9 +65,9 @@ services:
- db-master-data:/var/lib/postgresql/data - db-master-data:/var/lib/postgresql/data
- ./docker/pgsql/init-master.sh:/docker-entrypoint-initdb.d/init-master.sh - ./docker/pgsql/init-master.sh:/docker-entrypoint-initdb.d/init-master.sh
networks: networks:
- crm_ecosplay - crm_siteconseil
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U crm-ecosplay -d crm-ecosplay"] test: ["CMD-SHELL", "pg_isready -U crm-siteconseil -d crm-siteconseil"]
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 5 retries: 5
@@ -84,9 +84,9 @@ services:
cpus: "0.25" cpus: "0.25"
memory: 512M memory: 512M
environment: environment:
POSTGRES_USER: crm-ecosplay POSTGRES_USER: crm-siteconseil
POSTGRES_PASSWORD: {{ db_password }} POSTGRES_PASSWORD: {{ db_password }}
POSTGRES_DB: crm-ecosplay POSTGRES_DB: crm-siteconseil
PGDATA: /var/lib/postgresql/data PGDATA: /var/lib/postgresql/data
volumes: volumes:
- db-slave-data:/var/lib/postgresql/data - db-slave-data:/var/lib/postgresql/data
@@ -94,12 +94,12 @@ services:
entrypoint: ["/bin/bash", "/init-slave.sh"] entrypoint: ["/bin/bash", "/init-slave.sh"]
command: ["postgres"] command: ["postgres"]
networks: networks:
- crm_ecosplay - crm_siteconseil
depends_on: depends_on:
db-master: db-master:
condition: service_healthy condition: service_healthy
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U crm-ecosplay -d crm-ecosplay"] test: ["CMD-SHELL", "pg_isready -U crm-siteconseil -d crm-siteconseil"]
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 5 retries: 5
@@ -119,14 +119,14 @@ services:
- ./docker/pgsql/pgbouncer.ini:/etc/pgbouncer/pgbouncer.ini:ro - ./docker/pgsql/pgbouncer.ini:/etc/pgbouncer/pgbouncer.ini:ro
- ./docker/pgsql/userlist.txt:/etc/pgbouncer/userlist.txt:ro - ./docker/pgsql/userlist.txt:/etc/pgbouncer/userlist.txt:ro
networks: networks:
- crm_ecosplay - crm_siteconseil
depends_on: depends_on:
db-master: db-master:
condition: service_healthy condition: service_healthy
db-slave: db-slave:
condition: service_healthy condition: service_healthy
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -p 6432 -U crm-ecosplay"] test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -p 6432 -U crm-siteconseil"]
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 5 retries: 5
@@ -149,7 +149,7 @@ services:
volumes: volumes:
- .:/app - .:/app
networks: networks:
- crm_ecosplay - crm_siteconseil
depends_on: depends_on:
pgbouncer: pgbouncer:
condition: service_healthy condition: service_healthy
@@ -173,7 +173,7 @@ services:
volumes: volumes:
- redis-data:/data - redis-data:/data
networks: networks:
- crm_ecosplay - crm_siteconseil
healthcheck: healthcheck:
test: ["CMD", "redis-cli", "-a", "{{ redis_password }}", "ping"] test: ["CMD", "redis-cli", "-a", "{{ redis_password }}", "ping"]
interval: 5s interval: 5s
@@ -198,10 +198,10 @@ services:
volumes: volumes:
- meilisearch-data:/meili_data - meilisearch-data:/meili_data
networks: networks:
- crm_ecosplay - crm_siteconseil
networks: networks:
crm_ecosplay: crm_siteconseil:
driver: bridge driver: bridge
volumes: volumes:

View File

@@ -1,14 +1,14 @@
APP_ENV=prod APP_ENV=prod
APP_SECRET={{ app_secret }} APP_SECRET={{ app_secret }}
DATABASE_URL="postgresql://crm-ecosplay:{{ db_password }}@pgbouncer:6432/crm-ecosplay?serverVersion=16&charset=utf8" DATABASE_URL="postgresql://crm-siteconseil:{{ db_password }}@pgbouncer:6432/crm-siteconseil?serverVersion=16&charset=utf8"
MESSENGER_TRANSPORT_DSN=redis://:{{ redis_password }}@redis:6379/messages MESSENGER_TRANSPORT_DSN=redis://:{{ redis_password }}@redis:6379/messages
SESSION_HANDLER_DSN=redis://:{{ redis_password }}@redis:6379/1 SESSION_HANDLER_DSN=redis://:{{ redis_password }}@redis:6379/1
REDIS_CACHE_DSN=redis://:{{ redis_password }}@redis:6379/2 REDIS_CACHE_DSN=redis://:{{ redis_password }}@redis:6379/2
MAILER_DSN={{ mailer_dsn }} MAILER_DSN={{ mailer_dsn }}
DEFAULT_URI=https://ticket.e-cosplay.fr DEFAULT_URI=https://ticket.siteconseil.fr
VITE_LOAD=1 VITE_LOAD=1
REAL_MAIL=1 REAL_MAIL=1
OUTSIDE_URL=https://ticket.e-cosplay.fr OUTSIDE_URL=https://ticket.siteconseil.fr
STRIPE_PK={{ stripe_pk }} STRIPE_PK={{ stripe_pk }}
STRIPE_SK={{ stripe_sk }} STRIPE_SK={{ stripe_sk }}
STRIPE_WEBHOOK_SECRET={{ stripe_webhook_secret }} STRIPE_WEBHOOK_SECRET={{ stripe_webhook_secret }}
@@ -19,13 +19,13 @@ MEILISEARCH_URL=http://meilisearch:7700
MEILISEARCH_API_KEY={{ meilisearch_api_key }} MEILISEARCH_API_KEY={{ meilisearch_api_key }}
SONARQUBE_URL=https://sn.esy-web.dev SONARQUBE_URL=https://sn.esy-web.dev
SONARQUBE_BADGE_TOKEN={{ sonarqube_badge_token }} SONARQUBE_BADGE_TOKEN={{ sonarqube_badge_token }}
SONARQUBE_PROJECT_KEY=crm-ecosplay SONARQUBE_PROJECT_KEY=crm_siteconseil
OAUTH_KEYCLOAK_CLIENT_ID=crm_ecosplay OAUTH_KEYCLOAK_CLIENT_ID=crm_siteconseil
OAUTH_KEYCLOAK_CLIENT_SECRET=QiksEpHqDCHFPMM9CWb3RHfag31VJfIV OAUTH_KEYCLOAK_CLIENT_SECRET=kh1WBbnEzcEZVriXmU7IaxizChReHmIx
OAUTH_KEYCLOAK_URL=https://auth.esy-web.dev OAUTH_KEYCLOAK_URL=https://auth.esy-web.dev
OAUTH_KEYCLOAK_REALM=e-cosplay OAUTH_KEYCLOAK_REALM=master
SECRET_ANALYTICS={{ analytics_secret }} SECRET_ANALYTICS={{ analytics_secret }}
KEYCLOAK_ADMIN_CLIENT_ID=crm-ecosplay-admin KEYCLOAK_ADMIN_CLIENT_ID=crm-siteconseil-admin
KEYCLOAK_ADMIN_CLIENT_SECRET={{ keycloak_admin_client_secret }} KEYCLOAK_ADMIN_CLIENT_SECRET={{ keycloak_admin_client_secret }}
DOCUSEAL_URL=https://signature.esy-web.dev DOCUSEAL_URL=https://signature.esy-web.dev
DOCUSEAL_API={{ docuseal_api }} DOCUSEAL_API={{ docuseal_api }}

View File

@@ -2,4 +2,4 @@
127.0.0.1 ansible_user=bot ansible_become=yes ansible_become_method=sudo ansible_connection=local 127.0.0.1 ansible_user=bot ansible_become=yes ansible_become_method=sudo ansible_connection=local
[production:vars] [production:vars]
deploy_path=/var/www/crm.ecosplay/ deploy_path=/var/www/crm.siteconseil/

View File

@@ -1,6 +1,6 @@
[program:crm-ecosplay-messenger] [program:crm-siteconseil-messenger]
command=docker compose -f /var/www/crm-ecosplay/docker-compose-prod.yml exec php php bin/console messenger:consume async --time-limit=3600 --memory-limit=256M --limit=500 command=docker compose -f /var/www/crm-siteconseil/docker-compose-prod.yml exec php php bin/console messenger:consume async --time-limit=3600 --memory-limit=256M --limit=500
directory=/var/www/crm-ecosplay directory=/var/www/crm-siteconseil
user=bot user=bot
numprocs=2 numprocs=2
process_name=%(program_name)s_%(process_num)02d process_name=%(program_name)s_%(process_num)02d
@@ -8,5 +8,5 @@ autostart=true
autorestart=true autorestart=true
startsecs=0 startsecs=0
startretries=10 startretries=10
stdout_logfile=/var/log/supervisor/crm-ecosplay-messenger-%(process_num)02d.log stdout_logfile=/var/log/supervisor/crm-siteconseil-messenger-%(process_num)02d.log
stderr_logfile=/var/log/supervisor/crm-ecosplay-messenger-%(process_num)02d-error.log stderr_logfile=/var/log/supervisor/crm-siteconseil-messenger-%(process_num)02d-error.log

View File

@@ -1,6 +1,6 @@
[databases] [databases]
crm-ecosplay = host=db-master port=5432 dbname=crm-ecosplay crm-siteconseil = host=db-master port=5432 dbname=crm-siteconseil
crm-ecosplay_readonly = host=db-slave port=5432 dbname=crm-ecosplay crm-siteconseil_readonly = host=db-slave port=5432 dbname=crm-siteconseil
[pgbouncer] [pgbouncer]
listen_addr = 0.0.0.0 listen_addr = 0.0.0.0
@@ -17,5 +17,5 @@ server_lifetime = 3600
server_idle_timeout = 600 server_idle_timeout = 600
log_connections = 0 log_connections = 0
log_disconnections = 0 log_disconnections = 0
admin_users = crm-ecosplay admin_users = crm-siteconseil
stats_users = crm-ecosplay stats_users = crm-siteconseil

View File

@@ -1 +1 @@
"crm-ecosplay" "{{ db_password }}" "crm-siteconseil" "{{ db_password }}"

View File

@@ -18,7 +18,7 @@ docuseal_webhooks_secret: CRM_COSLAY
smime_private_key: | smime_private_key: |
Bag Attributes Bag Attributes
localKeyID: 75 15 E3 C2 1D 7B 61 75 99 B9 22 D8 FD A4 19 AC 6B BE 1F 8F localKeyID: 75 15 E3 C2 1D 7B 61 75 99 B9 22 D8 FD A4 19 AC 6B BE 1F 8F
friendlyName: contact@e-cosplay.fr friendlyName: contact@siteconseil.fr
Key Attributes: <No Attributes> Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY----- -----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC60+PtobUKQsjH MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC60+PtobUKQsjH

View File

@@ -138,4 +138,24 @@ document.addEventListener('DOMContentLoaded', () => {
setupSearch('search-customers', 'search-results', '/admin/clients/search', '/admin/clients/'); setupSearch('search-customers', 'search-results', '/admin/clients/search', '/admin/clients/');
setupSearch('search-revendeurs', 'search-results-revendeurs', '/admin/revendeurs/search', '/admin/revendeurs/'); setupSearch('search-revendeurs', 'search-results-revendeurs', '/admin/revendeurs/search', '/admin/revendeurs/');
// Tarif tabs
const tarifTabs = document.getElementById('tarif-tabs');
if (tarifTabs) {
const active = 'px-6 py-3 font-black uppercase text-sm tracking-widest bg-gray-900 text-white border-2 border-gray-900 border-b-0 cursor-pointer';
const inactive = 'px-6 py-3 font-black uppercase text-sm tracking-widest bg-white text-gray-900 border-2 border-gray-900 border-b-0 cursor-pointer hover:bg-gray-100 transition-all';
tarifTabs.querySelectorAll('[data-tab]').forEach(btn => {
btn.addEventListener('click', () => {
const tab = btn.dataset.tab;
tarifTabs.querySelectorAll('[data-tab]').forEach(b => {
b.className = b.dataset.tab === tab ? active : inactive;
});
document.querySelectorAll('[id^="content-"]').forEach(el => {
if (el.closest('#tarif-tabs')) return;
el.classList.toggle('hidden', el.id !== 'content-' + tab);
});
});
});
}
}); });

View File

@@ -28,7 +28,6 @@ liip_imagine:
format: 'webp' format: 'webp'
filters: filters:
strip: ~ strip: ~
thumbnail: { size: [ 48, 48 ], mode: inset }
avatar: avatar:
quality: 80 quality: 80
format: 'webp' format: 'webp'
@@ -46,4 +45,3 @@ liip_imagine:
format: 'webp' format: 'webp'
filters: filters:
strip: ~ strip: ~
thumbnail: { size: [ 99, 56 ], mode: inset }

View File

@@ -3,7 +3,7 @@ framework:
# Nom unique de votre application : utilisé pour calculer des espaces de noms stables pour les clés de cache. # Nom unique de votre application : utilisé pour calculer des espaces de noms stables pour les clés de cache.
# Ceci est CRUCIAL pour éviter les collisions de clés si plusieurs applications partagent le même serveur de cache (ex: Redis). # Ceci est CRUCIAL pour éviter les collisions de clés si plusieurs applications partagent le même serveur de cache (ex: Redis).
# Décommentez et remplacez par une valeur unique à votre projet (ex: "mon_entreprise/mon_app") # Décommentez et remplacez par une valeur unique à votre projet (ex: "mon_entreprise/mon_app")
prefix_seed: 'e-cosplay/contest' # <-- REMPLACEZ CECI PAR UN NOM UNIQUE À VOTRE PROJET prefix_seed: 'siteconseil/contest' # <-- REMPLACEZ CECI PAR UN NOM UNIQUE À VOTRE PROJET
# En production, utilisez un adaptateur de cache rapide et performant comme Redis. # En production, utilisez un adaptateur de cache rapide et performant comme Redis.
# Assurez-vous que votre serveur Redis est accessible. # Assurez-vous que votre serveur Redis est accessible.

View File

@@ -8,7 +8,7 @@ framework:
stale_while_revalidate: 3600 stale_while_revalidate: 3600
stale_if_error: 3600 stale_if_error: 3600
session: session:
name: ecosplay_session name: siteconseil_session
cookie_lifetime: 3600 cookie_lifetime: 3600
cookie_secure: true cookie_secure: true

View File

@@ -11,7 +11,7 @@ pwa:
skip_waiting: true skip_waiting: true
manifest: manifest:
enabled: true enabled: true
name: "E-Cosplay" name: "SITECONSEIL"
short_name: "PWA" short_name: "PWA"
start_url: "app_home" start_url: "app_home"
display: "standalone" display: "standalone"

View File

@@ -24,16 +24,16 @@ vich_uploader:
inject_on_load: true inject_on_load: true
delete_on_update: true delete_on_update: true
delete_on_remove: true delete_on_remove: true
members_page_cosplay: members_pagsiteconseil:
uri_prefix: /storage/members_page_avatar uri_prefix: /storage/members_page_avatar
upload_destination: '%kernel.project_dir%/public/storage/members_page_avatar' upload_destination: '%kernel.project_dir%/public/storage/members_page_avatar'
namer: Vich\UploaderBundle\Naming\UniqidNamer namer: Vich\UploaderBundle\Naming\UniqidNamer
inject_on_load: true inject_on_load: true
delete_on_update: true delete_on_update: true
delete_on_remove: true delete_on_remove: true
members_page_cosplay_details: members_pagsiteconseil_details:
uri_prefix: /storage/members_page_cosplay_details uri_prefix: /storage/members_pagsiteconseil_details
upload_destination: '%kernel.project_dir%/public/storage/members_page_cosplay_details' upload_destination: '%kernel.project_dir%/public/storage/members_pagsiteconseil_details'
namer: Vich\UploaderBundle\Naming\UniqidNamer namer: Vich\UploaderBundle\Naming\UniqidNamer
inject_on_load: true inject_on_load: true
delete_on_update: true delete_on_update: true

View File

@@ -5,15 +5,15 @@ scheb_two_factor:
email: email:
enabled: true enabled: true
sender_email: 'contact@e-cosplay.fr' sender_email: 'contact@siteconseil.fr'
sender_name: 'CRM Ecosplay' sender_name: 'CRM SITECONSEIL'
digits: 6 digits: 6
template: 'security/2fa_email.html.twig' template: 'security/2fa_email.html.twig'
mailer: App\Security\TwoFactorCodeMailer mailer: App\Security\TwoFactorCodeMailer
google: google:
enabled: true enabled: true
issuer: 'CRM Ecosplay' issuer: 'CRM SITECONSEIL'
template: 'security/2fa_google.html.twig' template: 'security/2fa_google.html.twig'
backup_codes: backup_codes:

View File

@@ -55,6 +55,12 @@ security:
when@test: when@test:
security: security:
providers:
test_user_provider:
id: App\Tests\TestUserProvider
firewalls:
main:
provider: test_user_provider
password_hashers: password_hashers:
# Password hashers are resource-intensive by design to ensure security. # Password hashers are resource-intensive by design to ensure security.
# In tests, it's safe to reduce their cost to improve performance. # In tests, it's safe to reduce their cost to improve performance.

View File

@@ -3,7 +3,7 @@ services:
build: build:
context: ./docker/php/dev context: ./docker/php/dev
dockerfile: Dockerfile dockerfile: Dockerfile
container_name: crm_ecosplay_php container_name: crm_siteconseil_php
restart: unless-stopped restart: unless-stopped
group_add: group_add:
- "${DOCKER_GID:-989}" - "${DOCKER_GID:-989}"
@@ -20,24 +20,24 @@ services:
database: database:
image: postgres:16-alpine image: postgres:16-alpine
container_name: crm_ecosplay_database container_name: crm_siteconseil_database
environment: environment:
POSTGRES_USER: app POSTGRES_USER: app
POSTGRES_PASSWORD: secret POSTGRES_PASSWORD: secret
POSTGRES_DB: crm_ecosplay POSTGRES_DB: crm_siteconseil
ports: ports:
- "5432:5432" - "5432:5432"
volumes: volumes:
- db-data:/var/lib/postgresql/data - db-data:/var/lib/postgresql/data
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U app -d crm_ecosplay"] test: ["CMD-SHELL", "pg_isready -U app -d crm_siteconseil"]
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 5 retries: 5
pgbouncer: pgbouncer:
image: edoburu/pgbouncer image: edoburu/pgbouncer
container_name: crm_ecosplay_pgbouncer container_name: crm_siteconseil_pgbouncer
volumes: volumes:
- ./docker/pgsql/pgbouncer-dev.ini:/etc/pgbouncer/pgbouncer.ini:ro - ./docker/pgsql/pgbouncer-dev.ini:/etc/pgbouncer/pgbouncer.ini:ro
- ./docker/pgsql/userlist-dev.txt:/etc/pgbouncer/userlist.txt:ro - ./docker/pgsql/userlist-dev.txt:/etc/pgbouncer/userlist.txt:ro
@@ -54,21 +54,21 @@ services:
redis: redis:
image: redis:7-alpine image: redis:7-alpine
container_name: crm_ecosplay_redis container_name: crm_siteconseil_redis
command: redis-server --requirepass crm_ecosplay command: redis-server --requirepass crm_siteconseil
ports: ports:
- "6379:6379" - "6379:6379"
volumes: volumes:
- redis-data:/data - redis-data:/data
healthcheck: healthcheck:
test: ["CMD", "redis-cli", "-a", "crm_ecosplay", "ping"] test: ["CMD", "redis-cli", "-a", "crm_siteconseil", "ping"]
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 5 retries: 5
caddy: caddy:
image: caddy:2-alpine image: caddy:2-alpine
container_name: crm_ecosplay_caddy container_name: crm_siteconseil_caddy
ports: ports:
- "8000:80" - "8000:80"
volumes: volumes:
@@ -81,7 +81,7 @@ services:
build: build:
context: ./docker/php/dev context: ./docker/php/dev
dockerfile: Dockerfile dockerfile: Dockerfile
container_name: crm_ecosplay_messenger container_name: crm_siteconseil_messenger
command: php bin/console messenger:consume async -vv command: php bin/console messenger:consume async -vv
restart: unless-stopped restart: unless-stopped
volumes: volumes:
@@ -96,7 +96,7 @@ services:
bun: bun:
image: oven/bun:alpine image: oven/bun:alpine
container_name: crm_ecosplay_bun container_name: crm_siteconseil_bun
working_dir: /app working_dir: /app
volumes: volumes:
- .:/app - .:/app
@@ -107,18 +107,18 @@ services:
mailpit: mailpit:
image: axllent/mailpit image: axllent/mailpit
container_name: crm_ecosplay_mailpit container_name: crm_siteconseil_mailpit
ports: ports:
- "1025:1025" - "1025:1025"
- "8025:8025" - "8025:8025"
vault: vault:
image: hashicorp/vault:latest image: hashicorp/vault:latest
container_name: crm_ecosplay_vault container_name: crm_siteconseil_vault
cap_add: cap_add:
- IPC_LOCK - IPC_LOCK
environment: environment:
VAULT_DEV_ROOT_TOKEN_ID: crm_ecosplay VAULT_DEV_ROOT_TOKEN_ID: crm_siteconseil
VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200 VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200
ports: ports:
- "8200:8200" - "8200:8200"
@@ -127,7 +127,7 @@ services:
ngrok: ngrok:
image: ngrok/ngrok:latest image: ngrok/ngrok:latest
container_name: crm_ecosplay_ngrok container_name: crm_siteconseil_ngrok
command: http caddy:80 --log stdout command: http caddy:80 --log stdout
environment: environment:
NGROK_AUTHTOKEN: GXtZtKtRxRF5TFV5pCKD_25f1ALUyQQ9LkyQJgv1dr NGROK_AUTHTOKEN: GXtZtKtRxRF5TFV5pCKD_25f1ALUyQQ9LkyQJgv1dr
@@ -138,7 +138,7 @@ services:
ngrok-sync: ngrok-sync:
image: curlimages/curl:latest image: curlimages/curl:latest
container_name: crm_ecosplay_ngrok_sync container_name: crm_siteconseil_ngrok_sync
user: "0:0" user: "0:0"
volumes: volumes:
- .:/app - .:/app
@@ -149,9 +149,9 @@ services:
meilisearch: meilisearch:
image: getmeili/meilisearch:latest image: getmeili/meilisearch:latest
container_name: crm_ecosplay_meilisearch container_name: crm_siteconseil_meilisearch
environment: environment:
MEILI_MASTER_KEY: crm_ecosplay MEILI_MASTER_KEY: crm_siteconseil
MEILI_ENV: development MEILI_ENV: development
ports: ports:
- "7700:7700" - "7700:7700"
@@ -162,7 +162,7 @@ services:
build: build:
context: ./docker/cron context: ./docker/cron
dockerfile: Dockerfile dockerfile: Dockerfile
container_name: crm_ecosplay_cron container_name: crm_siteconseil_cron
restart: unless-stopped restart: unless-stopped
group_add: group_add:
- "${DOCKER_GID:-989}" - "${DOCKER_GID:-989}"
@@ -177,7 +177,7 @@ services:
redisinsight: redisinsight:
image: redis/redisinsight:latest image: redis/redisinsight:latest
container_name: crm_ecosplay_redisinsight container_name: crm_siteconseil_redisinsight
ports: ports:
- "5540:5540" - "5540:5540"
depends_on: depends_on:

View File

@@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
echo "=== CRM Ecosplay Cron ===" echo "=== CRM SITECONSEIL Cron ==="
echo "Registered tasks:" echo "Registered tasks:"
echo " - */5 * * * * app:orders:expire-pending" echo " - */5 * * * * app:orders:expire-pending"
echo " - 0 * * * * app:monitor:messenger" echo " - 0 * * * * app:monitor:messenger"

View File

@@ -2,7 +2,7 @@
set -e set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'crm-ecosplay'; CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'crm-siteconseil';
SELECT pg_create_physical_replication_slot('slave_slot'); SELECT pg_create_physical_replication_slot('slave_slot');
EOSQL EOSQL

View File

@@ -1,2 +1,2 @@
CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'crm-ecosplay'; CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'crm-siteconseil';
SELECT pg_create_physical_replication_slot('slave_slot'); SELECT pg_create_physical_replication_slot('slave_slot');

View File

@@ -1,12 +1,12 @@
#!/bin/bash #!/bin/bash
set -e set -e
until pg_isready -h db-master -U crm-ecosplay; do until pg_isready -h db-master -U crm-siteconseil; do
echo "Waiting for master..." echo "Waiting for master..."
sleep 2 sleep 2
done done
echo "db-master:5432:replication:replicator:crm-ecosplay" > /tmp/.pgpass echo "db-master:5432:replication:replicator:crm-siteconseil" > /tmp/.pgpass
chown postgres:postgres /tmp/.pgpass chown postgres:postgres /tmp/.pgpass
chmod 600 /tmp/.pgpass chmod 600 /tmp/.pgpass

View File

@@ -1,6 +1,6 @@
[databases] [databases]
crm_ecosplay = host=database port=5432 dbname=crm_ecosplay crm_siteconseil = host=database port=5432 dbname=crm_siteconseil
crm_ecosplay_test = host=database port=5432 dbname=crm_ecosplay_test crm_siteconseil_test = host=database port=5432 dbname=crm_siteconseil_test
[pgbouncer] [pgbouncer]
listen_addr = 0.0.0.0 listen_addr = 0.0.0.0

View File

@@ -1,5 +1,5 @@
{ {
"name": "e-cosplay", "name": "siteconseil",
"private": true, "private": true,
"version": "0.0.0", "version": "0.0.0",
"type": "module", "type": "module",

Binary file not shown.

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg version="1.2" width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000" preserveAspectRatio="xMidYMid meet" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg">
<title>bimi-svg-tiny-12-ps</title>
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none">
<path d="M1989 3410 c-164 -26 -298 -63 -444 -120 -26 -11 -68 -4 -329 54&#xA;-164 37 -304 66 -311 64 -8 -2 53 -77 140 -173 85 -93 154 -173 155 -177 0 -5&#xA;-107 -8 -238 -8 l-238 0 -17 -72 c-9 -40 -39 -172 -67 -293 -28 -121 -58 -251&#xA;-67 -290 -8 -38 -21 -94 -29 -124 -7 -30 -11 -58 -8 -63 3 -4 123 -8 266 -8&#xA;251 0 263 1 284 21 l22 20 23 -38 c12 -21 35 -54 50 -73 l27 -35 -154 -204&#xA;c-85 -112 -152 -206 -150 -209 6 -5 272 82 515 169 151 54 181 61 375 89 470&#xA;67 755 90 1116 90 260 0 419 -10 590 -36 202 -31 491 -101 689 -169 52 -17 73&#xA;-21 76 -12 2 7 58 189 125 406 134 434 162 518 275 826 101 274 95 247 49 240&#xA;-376 -53 -561 -74 -954 -110 -313 -28 -867 -61 -876 -52 -3 3 20 39 51 79 l57&#xA;73 -293 6 c-162 3 -374 7 -473 8 l-178 1 26 35 c14 19 38 51 52 70 l26 35 -23&#xA;-1 c-13 -1 -76 -9 -140 -19z m-109 -156 c0 -4 -10 -22 -21 -41 -12 -19 -20&#xA;-36 -18 -38 2 -2 190 -7 417 -12 l412 -8 -60 -74 -61 -74 -472 -1 -472 -1 -65&#xA;-31 c-77 -37 -147 -104 -180 -174 l-23 -50 -64 0 c-39 0 -63 4 -63 11 0 28 69&#xA;137 127 199 35 37 63 71 63 75 0 4 -30 40 -66 81 -37 41 -60 74 -53 74 8 0 68&#xA;-11 134 -25 66 -14 127 -25 137 -25 10 0 37 13 60 30 26 18 85 41 148 59 121&#xA;33 120 33 120 25z m-757 -350 c-2 -18 -8 -49 -15 -70 l-13 -39 -76 -3 -77 -3&#xA;-11 -46 c-7 -25 -9 -48 -6 -51 3 -3 32 -8 64 -10 65 -5 61 3 40 -84 l-10 -38&#xA;-64 0 c-35 0 -66 -3 -68 -7 -3 -5 -8 -27 -12 -50 l-7 -43 76 0 c86 0 83 4 62&#xA;-85 l-11 -50 -153 -3 c-83 -1 -152 1 -152 5 0 4 7 34 15 67 8 34 28 122 45&#xA;196 17 74 40 178 52 230 12 52 26 101 31 108 7 9 46 12 151 10 l141 -3 -2 -31z&#xA;m1045 -14 c55 -34 72 -73 72 -168 0 -121 -40 -243 -105 -320 -39 -47 -118 -82&#xA;-185 -82 -113 0 -175 69 -175 195 0 163 83 317 200 371 65 31 147 32 193 4z&#xA;m455 11 c21 -5 41 -11 43 -14 3 -2 -1 -31 -9 -63 -9 -42 -18 -58 -28 -56 -8 2&#xA;-37 6 -65 9 -88 9 -124 -33 -67 -80 16 -12 47 -41 70 -63 41 -39 43 -44 43&#xA;-99 0 -76 -33 -134 -98 -172 -44 -26 -55 -28 -159 -28 -61 0 -115 3 -118 7 -4&#xA;4 -2 37 5 73 l13 66 73 -6 c60 -6 79 -4 99 9 35 23 31 50 -11 83 -112 86 -133&#xA;122 -114 193 30 111 177 175 323 141z m-824 -10 c14 -9 9 -78 -9 -127 -8 -21&#xA;-12 -22 -45 -13 -72 20 -140 -13 -173 -84 -27 -55 -32 -107 -17 -145 19 -44&#xA;48 -56 120 -49 l62 6 -16 -71 c-19 -85 -30 -91 -143 -86 -85 3 -115 19 -155&#xA;77 -88 129 22 429 178 484 48 17 176 22 198 8z m1249 -5 c51 -26 67 -53 67&#xA;-114 0 -151 -112 -262 -264 -262 l-39 0 -19 -82 -19 -83 -77 -3 c-42 -2 -77&#xA;-1 -77 1 0 8 119 523 125 545 6 18 267 17 303 -2z m292 10 c0 -2 -22 -97 -49&#xA;-210 l-48 -206 73 0 c60 0 74 -3 74 -16 0 -22 -22 -108 -29 -117 -8 -8 -287&#xA;-14 -295 -6 -3 3 7 64 24 135 31 140 88 378 96 407 5 14 18 17 80 17 41 0 74&#xA;-2 74 -4z m513 -63 c7 -75 9 -487 3 -494 -2 -2 -35 -3 -73 -1 l-69 3 0 47 1&#xA;47 -62 3 -62 3 -26 -51 c-14 -27 -31 -50 -38 -51 -60 -5 -137 -3 -137 4 0 9&#xA;247 503 267 534 14 21 22 23 103 23 l87 0 6 -67z m206 35 c5 -18 17 -61 27&#xA;-96 9 -34 20 -64 23 -67 4 -2 37 41 74 96 l68 99 74 0 c41 0 75 -3 75 -7 0 -5&#xA;-54 -84 -120 -176 -66 -92 -124 -176 -130 -187 -5 -10 -19 -55 -30 -101 -10&#xA;-45 -21 -84 -24 -86 -6 -7 -125 -7 -132 0 -3 2 6 48 19 101 l24 97 -54 172&#xA;c-29 94 -53 175 -53 180 0 4 33 7 74 7 l74 0 11 -32z m-2744 -254 c-11 -76 -9&#xA;-74 -97 -74 l-80 0 7 46 c11 76 9 74 97 74 l80 0 -7 -46z m-6 -211 c35 -103&#xA;101 -161 215 -189 63 -16 89 -16 409 0 188 9 461 21 607 26 306 11 1730 13&#xA;1730 3 0 -9 -81 -277 -85 -281 -2 -2 -41 8 -87 22 -377 114 -664 156 -1123&#xA;163 -347 6 -560 -8 -1110 -71 l-290 -34 -172 -64 c-95 -36 -173 -63 -173 -61&#xA;0 2 37 49 82 104 87 107 86 102 27 134 -35 19 -94 85 -119 134 -24 48 -52 150&#xA;-44 163 3 5 30 8 61 6 l54 -3 18 -52z"/>
<path d="M2020 2767 c-52 -25 -105 -187 -86 -262 8 -33 46 -51 75 -36 45 24&#xA;99 193 83 256 -11 40 -40 58 -72 42z"/>
<path d="M2862 2720 c-7 -34 -15 -67 -19 -75 -4 -11 3 -15 30 -15 40 0 71 30&#xA;82 80 11 50 -1 70 -44 70 l-37 0 -12 -60z"/>
<path d="M3678 2646 c-21 -43 -38 -82 -38 -87 0 -15 70 -10 76 4 3 8 4 47 2&#xA;88 l-3 74 -37 -79z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

BIN
public/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
public/logo_facture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -1,5 +1,5 @@
sonar.projectKey=crm-ecosplay sonar.projectKey=crm_siteconseil
sonar.projectName=CRM Ecosplay sonar.projectName=CRM SITECONSEIL
sonar.sources=src,assets,templates sonar.sources=src,assets,templates
sonar.tests=tests sonar.tests=tests

View File

@@ -43,18 +43,15 @@ class StripeSyncCommand extends Command
return Command::SUCCESS; return Command::SUCCESS;
} }
private function syncPayments(SymfonyStyle $io): void protected function syncPayments(SymfonyStyle $io): void
{ {
$io->section('Paiements'); $io->section('Paiements');
try { try {
$charges = \Stripe\Charge::all([ $charges = $this->fetchCharges();
'limit' => 100,
'created' => ['gte' => strtotime('-1 day')],
]);
$count = 0; $count = 0;
foreach ($charges->data as $charge) { foreach ($charges as $charge) {
$io->info('Paiement ID: '.$charge->id); $io->info('Paiement ID: '.$charge->id);
++$count; ++$count;
} }
@@ -65,18 +62,15 @@ class StripeSyncCommand extends Command
} }
} }
private function syncRefunds(SymfonyStyle $io): void protected function syncRefunds(SymfonyStyle $io): void
{ {
$io->section('Remboursements'); $io->section('Remboursements');
try { try {
$refunds = \Stripe\Refund::all([ $refunds = $this->fetchRefunds();
'limit' => 100,
'created' => ['gte' => strtotime('-1 day')],
]);
$count = 0; $count = 0;
foreach ($refunds->data as $refund) { foreach ($refunds as $refund) {
$io->info('Remboursement ID: '.$refund->id); $io->info('Remboursement ID: '.$refund->id);
++$count; ++$count;
} }
@@ -87,18 +81,15 @@ class StripeSyncCommand extends Command
} }
} }
private function syncPayouts(SymfonyStyle $io): void protected function syncPayouts(SymfonyStyle $io): void
{ {
$io->section('Versements'); $io->section('Versements');
try { try {
$payouts = \Stripe\Payout::all([ $payouts = $this->fetchPayouts();
'limit' => 100,
'created' => ['gte' => strtotime('-7 days')],
]);
$count = 0; $count = 0;
foreach ($payouts->data as $payout) { foreach ($payouts as $payout) {
$io->info('Versement ID: '.$payout->id); $io->info('Versement ID: '.$payout->id);
++$count; ++$count;
} }
@@ -109,15 +100,15 @@ class StripeSyncCommand extends Command
} }
} }
private function syncConnectAccounts(SymfonyStyle $io): void protected function syncConnectAccounts(SymfonyStyle $io): void
{ {
$io->section('Comptes Connect'); $io->section('Comptes Connect');
try { try {
$accounts = \Stripe\Account::all(['limit' => 100]); $accounts = $this->fetchConnectAccounts();
$count = 0; $count = 0;
foreach ($accounts->data as $account) { foreach ($accounts as $account) {
$status = $account->charges_enabled ? 'actif' : 'inactif'; $status = $account->charges_enabled ? 'actif' : 'inactif';
$payoutsEnabled = $account->payouts_enabled ? 'oui' : 'non'; $payoutsEnabled = $account->payouts_enabled ? 'oui' : 'non';
@@ -138,4 +129,40 @@ class StripeSyncCommand extends Command
$io->error('Erreur comptes Connect : '.$e->getMessage()); $io->error('Erreur comptes Connect : '.$e->getMessage());
} }
} }
/**
* @return iterable<\Stripe\Charge>
* @codeCoverageIgnore
*/
protected function fetchCharges(): iterable
{
return \Stripe\Charge::all(['limit' => 100, 'created' => ['gte' => strtotime('-1 day')]])->data;
}
/**
* @return iterable<\Stripe\Refund>
* @codeCoverageIgnore
*/
protected function fetchRefunds(): iterable
{
return \Stripe\Refund::all(['limit' => 100, 'created' => ['gte' => strtotime('-1 day')]])->data;
}
/**
* @return iterable<\Stripe\Payout>
* @codeCoverageIgnore
*/
protected function fetchPayouts(): iterable
{
return \Stripe\Payout::all(['limit' => 100, 'created' => ['gte' => strtotime('-7 days')]])->data;
}
/**
* @return iterable<\Stripe\Account>
* @codeCoverageIgnore
*/
protected function fetchConnectAccounts(): iterable
{
return \Stripe\Account::all(['limit' => 100])->data;
}
} }

View File

@@ -161,7 +161,7 @@ class MembresController extends AbstractController
): void { ): void {
$mailer->sendEmail( $mailer->sendEmail(
$email, $email,
'CRM Ecosplay - Votre compte a ete cree', 'CRM SITECONSEIL - Votre compte a ete cree',
$twig->render('emails/membre_created.html.twig', [ $twig->render('emails/membre_created.html.twig', [
'firstName' => $firstName, 'firstName' => $firstName,
'lastName' => $lastName, 'lastName' => $lastName,
@@ -192,7 +192,7 @@ class MembresController extends AbstractController
$mailer->sendEmail( $mailer->sendEmail(
$user->getEmail(), $user->getEmail(),
'CRM Ecosplay - Rappel : votre compte a ete cree', 'CRM SITECONSEIL - Rappel : votre compte a ete cree',
$twig->render('emails/membre_created.html.twig', [ $twig->render('emails/membre_created.html.twig', [
'firstName' => $user->getFirstName(), 'firstName' => $user->getFirstName(),
'lastName' => $user->getLastName(), 'lastName' => $user->getLastName(),

View File

@@ -86,7 +86,7 @@ class RevendeursController extends AbstractController
$mailer->sendEmail( $mailer->sendEmail(
$email, $email,
'CRM Ecosplay - Bienvenue dans l\'espace revendeur', 'CRM SITECONSEIL - Bienvenue dans l\'espace revendeur',
$twig->render('emails/revendeur_created.html.twig', [ $twig->render('emails/revendeur_created.html.twig', [
'firstName' => $firstName, 'firstName' => $firstName,
'lastName' => $lastName, 'lastName' => $lastName,
@@ -180,7 +180,7 @@ class RevendeursController extends AbstractController
Environment $twig, Environment $twig,
#[Autowire('%kernel.project_dir%')] string $projectDir, #[Autowire('%kernel.project_dir%')] string $projectDir,
): Response { ): Response {
$logoPath = $projectDir.'/public/logo.jpg'; $logoPath = $projectDir.'/public/logo_facture.png';
$logo = file_exists($logoPath) ? 'data:image/jpeg;base64,'.base64_encode(file_get_contents($logoPath)) : ''; $logo = file_exists($logoPath) ? 'data:image/jpeg;base64,'.base64_encode(file_get_contents($logoPath)) : '';
$html = $twig->render('pdf/contrat_revendeur.html.twig', [ $html = $twig->render('pdf/contrat_revendeur.html.twig', [

View File

@@ -67,7 +67,7 @@ class CspReportController extends AbstractController
private function sendAlert(MailerInterface $mailer, LoggerInterface $logger, array $report, string $documentUri, string $violatedDirective, string $blockedUri, string $sourceFile): void private function sendAlert(MailerInterface $mailer, LoggerInterface $logger, array $report, string $documentUri, string $violatedDirective, string $blockedUri, string $sourceFile): void
{ {
$email = (new Email()) $email = (new Email())
->from('security-notify@e-cosplay.fr') ->from('security-notify@siteconseil.fr')
->to($this->getParameter('admin_email')) ->to($this->getParameter('admin_email'))
->subject('Alerte Securite : Violation CSP detectee') ->subject('Alerte Securite : Violation CSP detectee')
->priority(Email::PRIORITY_HIGH) ->priority(Email::PRIORITY_HIGH)

View File

@@ -13,7 +13,7 @@ use Symfony\Component\Routing\Attribute\Route;
class EmailTrackingController extends AbstractController class EmailTrackingController extends AbstractController
{ {
#[Route('/track/{messageId}/logo.jpg', name: 'app_email_track', methods: ['GET'])] #[Route('/track/{messageId}/logo_facture.png', name: 'app_email_track', methods: ['GET'])]
public function track( public function track(
string $messageId, string $messageId,
EmailTrackingRepository $repository, EmailTrackingRepository $repository,
@@ -27,7 +27,7 @@ class EmailTrackingController extends AbstractController
$em->flush(); $em->flush();
} }
$response = new BinaryFileResponse($projectDir.'/public/logo.jpg'); $response = new BinaryFileResponse($projectDir.'/public/logo_facture.png');
$response->headers->set('Content-Type', 'image/jpeg'); $response->headers->set('Content-Type', 'image/jpeg');
$response->headers->set('Cache-Control', 'no-store'); $response->headers->set('Cache-Control', 'no-store');

View File

@@ -71,7 +71,7 @@ class ForgotPasswordController extends AbstractController
if (null !== $user) { if (null !== $user) {
$mailer->sendEmail( $mailer->sendEmail(
$email, $email,
'CRM Ecosplay - Code de reinitialisation', 'CRM SITECONSEIL - Code de reinitialisation',
$twig->render('emails/forgot_password_code.html.twig', ['code' => $code]), $twig->render('emails/forgot_password_code.html.twig', ['code' => $code]),
null, null,
null, null,
@@ -106,7 +106,7 @@ class ForgotPasswordController extends AbstractController
$mailer->sendEmail( $mailer->sendEmail(
$sessionEmail, $sessionEmail,
'CRM Ecosplay - Mot de passe modifie', 'CRM SITECONSEIL - Mot de passe modifie',
$twig->render('emails/password_changed.html.twig'), $twig->render('emails/password_changed.html.twig'),
null, null,
null, null,

View File

@@ -122,7 +122,7 @@ class LegalController extends AbstractController
$this->addFlash('success', 'Aucune donnee trouvee pour cette adresse IP. Un email de confirmation a ete envoye.'); $this->addFlash('success', 'Aucune donnee trouvee pour cette adresse IP. Un email de confirmation a ete envoye.');
} }
} catch (\Throwable) { } catch (\Throwable) {
$this->addFlash('error', 'Une erreur est survenue lors du traitement de votre demande. Veuillez reessayer ou nous contacter a contact@e-cosplay.fr.'); $this->addFlash('error', 'Une erreur est survenue lors du traitement de votre demande. Veuillez reessayer ou nous contacter a contact@siteconseil.fr.');
} }
return $this->redirect($this->generateUrl('app_legal_rgpd').self::RGPD_ANCHOR); return $this->redirect($this->generateUrl('app_legal_rgpd').self::RGPD_ANCHOR);
@@ -149,7 +149,7 @@ class LegalController extends AbstractController
$this->addFlash('success', 'Aucune donnee trouvee pour cette adresse IP.'); $this->addFlash('success', 'Aucune donnee trouvee pour cette adresse IP.');
} }
} catch (\Throwable) { } catch (\Throwable) {
$this->addFlash('error', 'Une erreur est survenue lors du traitement de votre demande. Veuillez reessayer ou nous contacter a contact@e-cosplay.fr.'); $this->addFlash('error', 'Une erreur est survenue lors du traitement de votre demande. Veuillez reessayer ou nous contacter a contact@siteconseil.fr.');
} }
return $this->redirect($this->generateUrl('app_legal_rgpd').self::RGPD_ANCHOR); return $this->redirect($this->generateUrl('app_legal_rgpd').self::RGPD_ANCHOR);

View File

@@ -181,7 +181,7 @@ class WebhookDocuSealController extends AbstractController
$mailer->sendEmail( $mailer->sendEmail(
$attestation->getEmail(), $attestation->getEmail(),
'CRM Ecosplay - Attestation signee '.$typeName.' ('.$attestation->getReference().')', 'CRM SITECONSEIL - Attestation signee '.$typeName.' ('.$attestation->getReference().')',
$twig->render('emails/rgpd_attestation_signed.html.twig', [ $twig->render('emails/rgpd_attestation_signed.html.twig', [
'attestation' => $attestation, 'attestation' => $attestation,
'typeName' => $typeName, 'typeName' => $typeName,

View File

@@ -85,7 +85,7 @@ class KeycloakAuthenticator extends OAuth2Authenticator implements Authenticatio
{ {
$session = $request->getSession(); $session = $request->getSession();
if ($session instanceof FlashBagAwareSessionInterface) { if ($session instanceof FlashBagAwareSessionInterface) {
$session->getFlashBag()->add('error', 'Echec de la connexion E-Cosplay. Veuillez reessayer.'); $session->getFlashBag()->add('error', 'Echec de la connexion SITECONSEIL. Veuillez reessayer.');
} }
return new RedirectResponse($this->router->generate('app_home')); return new RedirectResponse($this->router->generate('app_home'));

View File

@@ -25,9 +25,9 @@ class TwoFactorCodeMailer implements AuthCodeMailerInterface
]); ]);
$email = (new Email()) $email = (new Email())
->from('CRM Ecosplay <contact@e-cosplay.fr>') ->from('CRM SITECONSEIL <contact@siteconseil.fr>')
->to($user->getEmailAuthRecipient()) ->to($user->getEmailAuthRecipient())
->subject('CRM Ecosplay - Code de verification') ->subject('CRM SITECONSEIL - Code de verification')
->html($html); ->html($html);
$this->mailer->send($email); $this->mailer->send($email);

View File

@@ -44,8 +44,8 @@ class DocuSealService
], ],
'submitters' => [ 'submitters' => [
[ [
'email' => 'contact@e-cosplay.fr', 'email' => 'contact@siteconseil.fr',
'name' => 'Association E-Cosplay', 'name' => 'SARL SITECONSEIL',
'role' => 'First Party', 'role' => 'First Party',
'completed' => true, 'completed' => true,
'send_email' => false, 'send_email' => false,
@@ -77,10 +77,10 @@ class DocuSealService
private function getLogoBase64(): string private function getLogoBase64(): string
{ {
$logoPath = $this->projectDir.'/public/logo.jpg'; $logoPath = $this->projectDir.'/public/logo_facture.png';
if (!file_exists($logoPath)) { if (!file_exists($logoPath)) {
return 'Association E-Cosplay'; return 'SARL SITECONSEIL';
} }
return 'data:image/jpeg;base64,'.base64_encode(file_get_contents($logoPath)); return 'data:image/jpeg;base64,'.base64_encode(file_get_contents($logoPath));

View File

@@ -31,7 +31,7 @@ class MailerService
public function getAdminFrom(): string public function getAdminFrom(): string
{ {
return 'Association E-Cosplay <'.$this->adminEmail.'>'; return 'SARL SITECONSEIL <'.$this->adminEmail.'>';
} }
public function send(Email $email): void public function send(Email $email): void
@@ -45,10 +45,12 @@ class MailerService
$certificate = $this->projectDir.'/config/cert/smime/certificate.pem'; $certificate = $this->projectDir.'/config/cert/smime/certificate.pem';
$privateKey = $this->projectDir.'/config/cert/smime/private-key.pem'; $privateKey = $this->projectDir.'/config/cert/smime/private-key.pem';
// @codeCoverageIgnoreStart
if (file_exists($certificate) && file_exists($privateKey)) { if (file_exists($certificate) && file_exists($privateKey)) {
$signer = new SMimeSigner($certificate, $privateKey, $this->smimePassphrase); $signer = new SMimeSigner($certificate, $privateKey, $this->smimePassphrase);
$email = $signer->sign($email); $email = $signer->sign($email);
} }
// @codeCoverageIgnoreEnd
$this->bus->dispatch(new SendEmailMessage($email)); $this->bus->dispatch(new SendEmailMessage($email));
} }
@@ -89,7 +91,7 @@ class MailerService
} }
$messageId = bin2hex(random_bytes(16)); $messageId = bin2hex(random_bytes(16));
$email->getHeaders()->addIdHeader('Message-ID', $messageId.'@e-cosplay.fr'); $email->getHeaders()->addIdHeader('Message-ID', $messageId.'@siteconseil.fr');
$trackingUrl = $this->urlGenerator->generate('app_email_track', [ $trackingUrl = $this->urlGenerator->generate('app_email_track', [
'messageId' => $messageId, 'messageId' => $messageId,
@@ -100,7 +102,7 @@ class MailerService
], UrlGeneratorInterface::ABSOLUTE_URL); ], UrlGeneratorInterface::ABSOLUTE_URL);
$html = $email->getHtmlBody(); $html = $email->getHtmlBody();
$html = str_replace('https://crm.e-cosplay.fr/logo.jpg', $trackingUrl, $html); $html = str_replace('https://crm.siteconseil.fr/logo_facture.png', $trackingUrl, $html);
$html = str_replace('__VIEW_URL__', $viewUrl, $html); $html = str_replace('__VIEW_URL__', $viewUrl, $html);
$email->html($html); $email->html($html);
@@ -131,7 +133,7 @@ class MailerService
$email->getHeaders()->addTextHeader( $email->getHeaders()->addTextHeader(
'List-Unsubscribe', 'List-Unsubscribe',
sprintf('<%s>, <mailto:unsubscribe@e-cosplay.fr?subject=unsubscribe-%s>', $unsubscribeUrl, urlencode($to)) sprintf('<%s>, <mailto:unsubscribe@siteconseil.fr?subject=unsubscribe-%s>', $unsubscribeUrl, urlencode($to))
); );
$email->getHeaders()->addTextHeader('List-Unsubscribe-Post', 'List-Unsubscribe=One-Click'); $email->getHeaders()->addTextHeader('List-Unsubscribe-Post', 'List-Unsubscribe=One-Click');
} }

View File

@@ -13,9 +13,6 @@ use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Twig\Environment; use Twig\Environment;
/**
* @codeCoverageIgnore RGPD data access/deletion with PDF generation
*/
class RgpdService class RgpdService
{ {
public function __construct( public function __construct(
@@ -127,7 +124,9 @@ class RgpdService
'no_data' => $this->generateNoDataPdf($ip, $attestation), 'no_data' => $this->generateNoDataPdf($ip, $attestation),
'access' => $this->generateAccessPdf($data, $ip, $attestation), 'access' => $this->generateAccessPdf($data, $ip, $attestation),
'deletion' => $this->generateDeletionPdf($ip, $attestation), 'deletion' => $this->generateDeletionPdf($ip, $attestation),
// @codeCoverageIgnoreStart
default => throw new \InvalidArgumentException('Invalid attestation type'), default => throw new \InvalidArgumentException('Invalid attestation type'),
// @codeCoverageIgnoreEnd
}; };
$attestation->setPdfFileUnsigned($pdfPath); $attestation->setPdfFileUnsigned($pdfPath);
@@ -140,7 +139,7 @@ class RgpdService
private function getLogoBase64(): string private function getLogoBase64(): string
{ {
$logoPath = $this->projectDir.'/public/logo.jpg'; $logoPath = $this->projectDir.'/public/logo_facture.png';
return file_exists($logoPath) ? 'data:image/jpeg;base64,'.base64_encode((string) file_get_contents($logoPath)) : ''; return file_exists($logoPath) ? 'data:image/jpeg;base64,'.base64_encode((string) file_get_contents($logoPath)) : '';
} }

View File

@@ -24,7 +24,7 @@
<aside class="admin-sidebar bg-gray-900 border-r-4 border-[#fabf04] flex flex-col" id="admin-sidebar"> <aside class="admin-sidebar bg-gray-900 border-r-4 border-[#fabf04] flex flex-col" id="admin-sidebar">
<div class="p-4 border-b border-gray-700"> <div class="p-4 border-b border-gray-700">
<a href="{{ path('app_admin_dashboard') }}" class="flex items-center gap-3"> <a href="{{ path('app_admin_dashboard') }}" class="flex items-center gap-3">
<img class="h-8 w-auto" src="{{ 'logo.jpg' | imagine_filter('navbar_logo') }}" alt="CRM Ecosplay" loading="eager"> <img class="h-8 w-auto" src="{{ 'logo_facture.png' | imagine_filter('navbar_logo') }}" alt="CRM SITECONSEIL" loading="eager">
<span class="text-white font-black uppercase text-xs tracking-widest">Admin</span> <span class="text-white font-black uppercase text-xs tracking-widest">Admin</span>
</a> </a>
</div> </div>

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Nouveau client - Administration - CRM Ecosplay{% endblock %} {% block title %}Nouveau client - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">
@@ -108,7 +108,7 @@
</div> </div>
<div> <div>
<label for="city" class="block text-xs font-black uppercase tracking-widest mb-2">Ville</label> <label for="city" class="block text-xs font-black uppercase tracking-widest mb-2">Ville</label>
<input type="text" id="city" name="city" placeholder="Beautor" <input type="text" id="city" name="city" placeholder="Saint-Quentin"
class="w-full px-4 py-3 border-2 border-gray-900 bg-white text-sm font-bold focus:outline-none focus:border-indigo-600 focus:shadow-[4px_4px_0px_rgba(79,70,229,0.3)]"> class="w-full px-4 py-3 border-2 border-gray-900 bg-white text-sm font-bold focus:outline-none focus:border-indigo-600 focus:shadow-[4px_4px_0px_rgba(79,70,229,0.3)]">
</div> </div>
</div> </div>

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Clients - Administration - CRM Ecosplay{% endblock %} {% block title %}Clients - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Administration - CRM Ecosplay{% endblock %} {% block title %}Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Facturation - Administration - CRM Ecosplay{% endblock %} {% block title %}Facturation - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Administration - Membres - CRM Ecosplay{% endblock %} {% block title %}Administration - Membres - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Mon profil - Administration - CRM Ecosplay{% endblock %} {% block title %}Mon profil - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Nouveau revendeur - Administration - CRM Ecosplay{% endblock %} {% block title %}Nouveau revendeur - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">
@@ -77,7 +77,7 @@
</div> </div>
<div> <div>
<label for="city" class="block text-xs font-black uppercase tracking-widest mb-2">Ville</label> <label for="city" class="block text-xs font-black uppercase tracking-widest mb-2">Ville</label>
<input type="text" id="city" name="city" placeholder="Beautor" <input type="text" id="city" name="city" placeholder="Saint-Quentin"
class="w-full px-4 py-3 border-2 border-gray-900 bg-white text-sm font-bold focus:outline-none focus:border-indigo-600 focus:shadow-[4px_4px_0px_rgba(79,70,229,0.3)]"> class="w-full px-4 py-3 border-2 border-gray-900 bg-white text-sm font-bold focus:outline-none focus:border-indigo-600 focus:shadow-[4px_4px_0px_rgba(79,70,229,0.3)]">
</div> </div>
</div> </div>

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Modifier {{ revendeur.codeRevendeur }} - Administration - CRM Ecosplay{% endblock %} {% block title %}Modifier {{ revendeur.codeRevendeur }} - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">
@@ -63,7 +63,7 @@
</div> </div>
<div> <div>
<label for="city" class="block text-xs font-black uppercase tracking-widest mb-2">Ville</label> <label for="city" class="block text-xs font-black uppercase tracking-widest mb-2">Ville</label>
<input type="text" id="city" name="city" value="{{ revendeur.city }}" placeholder="Beautor" <input type="text" id="city" name="city" value="{{ revendeur.city }}" placeholder="Saint-Quentin"
class="w-full px-4 py-3 border-2 border-gray-900 bg-white text-sm font-bold focus:outline-none focus:border-indigo-600 focus:shadow-[4px_4px_0px_rgba(79,70,229,0.3)]"> class="w-full px-4 py-3 border-2 border-gray-900 bg-white text-sm font-bold focus:outline-none focus:border-indigo-600 focus:shadow-[4px_4px_0px_rgba(79,70,229,0.3)]">
</div> </div>
</div> </div>

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Revendeurs - Administration - CRM Ecosplay{% endblock %} {% block title %}Revendeurs - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Services - Administration - CRM Ecosplay{% endblock %} {% block title %}Services - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Statistiques - Administration - CRM Ecosplay{% endblock %} {% block title %}Statistiques - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Status des services - Administration - CRM Ecosplay{% endblock %} {% block title %}Status des services - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Gerer les services - Administration - CRM Ecosplay{% endblock %} {% block title %}Gerer les services - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">
@@ -99,7 +99,7 @@
<input type="hidden" name="category_id" value="{{ category.id }}"> <input type="hidden" name="category_id" value="{{ category.id }}">
<div class="flex-1 min-w-[120px]"> <div class="flex-1 min-w-[120px]">
<label for="service_name_{{ category.id }}" class="block text-[9px] font-black uppercase tracking-widest text-gray-400 mb-1">Nom</label> <label for="service_name_{{ category.id }}" class="block text-[9px] font-black uppercase tracking-widest text-gray-400 mb-1">Nom</label>
<input id="service_name_{{ category.id }}" type="text" name="name" required placeholder="Ex: CRM Ecosplay" <input id="service_name_{{ category.id }}" type="text" name="name" required placeholder="Ex: CRM SITECONSEIL"
class="w-full px-3 py-2 border-2 border-gray-900 bg-white text-xs font-bold focus:outline-none focus:border-indigo-600"> class="w-full px-3 py-2 border-2 border-gray-900 bg-white text-xs font-bold focus:outline-none focus:border-indigo-600">
</div> </div>
<div class="flex-1 min-w-[120px]"> <div class="flex-1 min-w-[120px]">

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %} {% extends 'admin/_layout.html.twig' %}
{% block title %}Synchronisation - Administration - CRM Ecosplay{% endblock %} {% block title %}Synchronisation - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %} {% block admin_content %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Attestation introuvable - CRM Ecosplay{% endblock %} {% block title %}Attestation introuvable - CRM SITECONSEIL{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,6 +1,6 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Verification attestation {{ attestation.reference }} - CRM Ecosplay{% endblock %} {% block title %}Verification attestation {{ attestation.reference }} - CRM SITECONSEIL{% endblock %}
{% block description %}Verification de l'attestation RGPD {{ attestation.reference }}.{% endblock %} {% block description %}Verification de l'attestation RGPD {{ attestation.reference }}.{% endblock %}
{% block body %} {% block body %}

View File

@@ -3,31 +3,29 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}CRM Ecosplay{% endblock %}</title> <title>{% block title %}CRM SITECONSEIL{% endblock %}</title>
{{ pwa() }} {{ pwa() }}
{% block meta %} {% block meta %}
<meta name="description" content="{% block description %}CRM Ecosplay - Plateforme de gestion pour l'association e-cosplay{% endblock %}"> <meta name="description" content="{% block description %}CRM SITECONSEIL - Plateforme de gestion de la SARL SITECONSEIL{% endblock %}">
{% endblock %} {% endblock %}
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
"@type": "Organization", "@type": "Organization",
"name": "CRM Ecosplay", "name": "CRM SITECONSEIL",
"url": "https://crm.e-cosplay.fr", "url": "https://crm.siteconseil.fr",
"logo": "https://crm.e-cosplay.fr/logo.jpg", "logo": "https://crm.siteconseil.fr/logo_facture.png",
"email": "contact@e-cosplay.fr", "email": "contact@siteconseil.fr",
"telephone": "+33679348802", "telephone": "+33679348802",
"address": { "address": {
"@type": "PostalAddress", "@type": "PostalAddress",
"streetAddress": "42 rue de Saint-Quentin", "streetAddress": "27 rue Le Sérurier",
"addressLocality": "Beautor", "addressLocality": "Saint-Quentin",
"postalCode": "02800", "postalCode": "02100",
"addressCountry": "FR" "addressCountry": "FR"
}, },
"sameAs": [ "sameAs": [
"https://www.facebook.com/assocationecosplay", "https://www.siteconseil.fr"
"https://www.e-cosplay.fr",
"https://www.ticket.e-cosplay.fr"
] ]
} }
</script> </script>
@@ -35,8 +33,8 @@
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
"@type": "WebSite", "@type": "WebSite",
"name": "CRM Ecosplay", "name": "CRM SITECONSEIL",
"url": "https://crm.e-cosplay.fr" "url": "https://crm.siteconseil.fr"
} }
</script> </script>
{% if breadcrumbs is defined and breadcrumbs is not empty %} {% if breadcrumbs is defined and breadcrumbs is not empty %}
@@ -63,9 +61,9 @@
<meta property="og:type" content="{% block og_type %}website{% endblock %}"> <meta property="og:type" content="{% block og_type %}website{% endblock %}">
<meta property="og:url" content="{{ app.request.uri }}"> <meta property="og:url" content="{{ app.request.uri }}">
<meta property="og:locale" content="fr_FR"> <meta property="og:locale" content="fr_FR">
<meta property="og:site_name" content="CRM Ecosplay"> <meta property="og:site_name" content="CRM SITECONSEIL">
{% block og_image %} {% block og_image %}
<meta property="og:image" content="https://crm.e-cosplay.fr/logo.jpg"> <meta property="og:image" content="https://crm.siteconseil.fr/logo_facture.png">
{% endblock %} {% endblock %}
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ block('og_title') }}"> <meta name="twitter:title" content="{{ block('og_title') }}">
@@ -83,8 +81,8 @@
<nav class="mx-auto px-4 lg:px-8" role="navigation" aria-label="Navigation principale" itemscope itemtype="https://schema.org/SiteNavigationElement"> <nav class="mx-auto px-4 lg:px-8" role="navigation" aria-label="Navigation principale" itemscope itemtype="https://schema.org/SiteNavigationElement">
<div class="flex justify-between items-center h-20"> <div class="flex justify-between items-center h-20">
<div class="flex-shrink-0"> <div class="flex-shrink-0">
<a href="{{ path('app_home') }}" class="flex items-center group" aria-label="CRM Ecosplay - Retour a l'accueil"> <a href="{{ path('app_home') }}" class="flex items-center group" aria-label="CRM SITECONSEIL - Retour a l'accueil">
<img class="h-8 md:h-12 w-auto" src="{{ 'logo.jpg' | imagine_filter('navbar_logo') }}" alt="CRM Ecosplay" loading="eager" width="48" height="48"> <img class="h-10 md:h-14 w-auto" src="{{ 'logo_facture.png' | imagine_filter('navbar_logo') }}" alt="CRM SITECONSEIL" loading="eager">
</a> </a>
</div> </div>
@@ -141,17 +139,17 @@
<div class="flex flex-wrap gap-12 pb-12 mb-12 border-b-4 border-gray-900"> <div class="flex flex-wrap gap-12 pb-12 mb-12 border-b-4 border-gray-900">
<div class="flex-1 min-w-[280px]"> <div class="flex-1 min-w-[280px]">
<h3 class="text-3xl font-black uppercase tracking-tighter italic border-b-4 border-gray-900 inline-block mb-4">Nous Contacter</h3> <h3 class="text-3xl font-black uppercase tracking-tighter italic border-b-4 border-gray-900 inline-block mb-4">Nous Contacter</h3>
<p class="font-bold text-lg leading-snug">42 RUE DE SAINT-QUENTIN<br>02800 BEAUTOR, FRANCE</p> <p class="font-bold text-lg leading-snug">27 RUE LE SÉRURIER<br>02100 SAINT-QUENTIN, FRANCE</p>
<a href="mailto:contact@e-cosplay.fr" class="inline-block mt-4 px-4 py-2 bg-gray-900 text-white font-black uppercase text-sm hover:bg-indigo-600 transition-colors"> <a href="mailto:contact@siteconseil.fr" class="inline-block mt-4 px-4 py-2 bg-gray-900 text-white font-black uppercase text-sm hover:bg-indigo-600 transition-colors">
contact@e-cosplay.fr contact@siteconseil.fr
</a> </a>
</div> </div>
<div class="flex-1 min-w-[280px]"> <div class="flex-1 min-w-[280px]">
<h3 class="text-3xl font-black uppercase tracking-tighter italic border-b-4 border-gray-900 inline-block mb-4">CRM Ecosplay</h3> <h3 class="text-3xl font-black uppercase tracking-tighter italic border-b-4 border-gray-900 inline-block mb-4">CRM SITECONSEIL</h3>
<p class="font-bold text-gray-800 italic leading-normal"> <p class="font-bold text-gray-800 italic leading-normal">
CRM Ecosplay est la plateforme de relation entre CRM SITECONSEIL est la plateforme de relation entre
E-Cosplay, ses clients et ses revendeurs. SITECONSEIL, ses clients et ses revendeurs.
Retrouvez vos factures, commandes et devis directement en un seul endroit. Retrouvez vos factures, commandes et devis directement en un seul endroit.
</p> </p>
</div> </div>
@@ -159,9 +157,9 @@
<div class="flex flex-col sm:flex-row flex-wrap justify-between items-start sm:items-center gap-6"> <div class="flex flex-col sm:flex-row flex-wrap justify-between items-start sm:items-center gap-6">
<div> <div>
<p class="font-black uppercase text-sm">&copy; {{ "now"|date("Y") }} CRM ECOSPLAY.</p> <p class="font-black uppercase text-sm">&copy; {{ "now"|date("Y") }} CRM SITECONSEIL.</p>
<p class="text-[11px] font-bold opacity-80">Solution proposee par l'association <a href="https://www.e-cosplay.fr" class="underline hover:no-underline">e-cosplay.fr</a></p> <p class="text-[11px] font-bold opacity-80">Solution proposee par la <a href="https://www.siteconseil.fr" class="underline hover:no-underline">SARL SITECONSEIL</a></p>
<p class="text-[10px] font-bold opacity-70">RNA N&deg;W022006988</p> <p class="text-[10px] font-bold opacity-70">Siret : 418 664 058</p>
</div> </div>
<div class="flex flex-wrap gap-2"> <div class="flex flex-wrap gap-2">
<a href="{{ path('app_legal_mention_legal') }}" class="text-[10px] px-2 py-1 font-black uppercase bg-gray-900 text-white hover:bg-indigo-600 transition-colors">Mentions Legales</a> <a href="{{ path('app_legal_mention_legal') }}" class="text-[10px] px-2 py-1 font-black uppercase bg-gray-900 text-white hover:bg-indigo-600 transition-colors">Mentions Legales</a>

View File

@@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}CRM Ecosplay{% endblock %}</title> <title>{% block title %}CRM SITECONSEIL{% endblock %}</title>
</head> </head>
<body style="margin: 0; padding: 0; background-color: #fbfbfb; font-family: Arial, Helvetica, sans-serif; color: #111827;"> <body style="margin: 0; padding: 0; background-color: #fbfbfb; font-family: Arial, Helvetica, sans-serif; color: #111827;">
<div style="background-color: #fbfbfb; padding: 40px 0; text-align: center;"> <div style="background-color: #fbfbfb; padding: 40px 0; text-align: center;">
@@ -12,13 +12,13 @@
</p> </p>
<div style="max-width: 600px; margin: 0 auto; background-color: #ffffff; border: 4px solid #111827; text-align: left;"> <div style="max-width: 600px; margin: 0 auto; background-color: #ffffff; border: 4px solid #111827; text-align: left;">
<div style="background-color: #fabf04; border-bottom: 4px solid #111827; padding: 20px; text-align: center;"> <div style="background-color: #fabf04; border-bottom: 4px solid #111827; padding: 20px; text-align: center;">
<img src="https://crm.e-cosplay.fr/logo.jpg" alt="CRM Ecosplay" style="display: block; margin: 0 auto; width: 120px;"> <img src="https://crm.siteconseil.fr/logo_facture.png" alt="CRM SITECONSEIL" style="display: block; margin: 0 auto; width: 120px;">
</div> </div>
<div style="padding: 32px;"> <div style="padding: 32px;">
{% block content %}{% endblock %} {% block content %}{% endblock %}
</div> </div>
<div style="background-color: #111827; color: #ffffff; padding: 16px; text-align: center; font-size: 11px; font-weight: bold; text-transform: uppercase; letter-spacing: 1px;"> <div style="background-color: #111827; color: #ffffff; padding: 16px; text-align: center; font-size: 11px; font-weight: bold; text-transform: uppercase; letter-spacing: 1px;">
&copy; {{ "now"|date("Y") }} Association E-Cosplay &copy; {{ "now"|date("Y") }} SARL SITECONSEIL
</div> </div>
</div> </div>
</div> </div>

View File

@@ -5,7 +5,7 @@
{% block content %} {% block content %}
<h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Code de verification</h1> <h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Code de verification</h1>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Voici votre code de verification pour vous connecter au CRM Ecosplay :</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Voici votre code de verification pour vous connecter au CRM SITECONSEIL :</p>
<div style="text-align: center; margin: 24px 0;"> <div style="text-align: center; margin: 24px 0;">
<span style="display: inline-block; padding: 16px 32px; background: #111827; color: #fabf04; font-size: 32px; font-weight: 900; letter-spacing: 0.3em; font-family: monospace;">{{ code }}</span> <span style="display: inline-block; padding: 16px 32px; background: #111827; color: #fabf04; font-size: 32px; font-weight: 900; letter-spacing: 0.3em; font-family: monospace;">{{ code }}</span>

View File

@@ -5,7 +5,7 @@
{% block content %} {% block content %}
<h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Reinitialisation du mot de passe</h1> <h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Reinitialisation du mot de passe</h1>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Vous avez demande la reinitialisation de votre mot de passe sur le CRM Ecosplay. Voici votre code de verification :</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Vous avez demande la reinitialisation de votre mot de passe sur le CRM SITECONSEIL. Voici votre code de verification :</p>
<div style="text-align: center; margin: 24px 0;"> <div style="text-align: center; margin: 24px 0;">
<span style="display: inline-block; padding: 16px 32px; background: #111827; color: #fabf04; font-size: 32px; font-weight: 900; letter-spacing: 0.3em; font-family: monospace;">{{ code }}</span> <span style="display: inline-block; padding: 16px 32px; background: #111827; color: #fabf04; font-size: 32px; font-weight: 900; letter-spacing: 0.3em; font-family: monospace;">{{ code }}</span>
</div> </div>

View File

@@ -1,10 +1,10 @@
{% extends 'email/base.html.twig' %} {% extends 'email/base.html.twig' %}
{% block title %}Votre compte CRM Ecosplay{% endblock %} {% block title %}Votre compte CRM SITECONSEIL{% endblock %}
{% block content %} {% block content %}
<h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Bienvenue {{ firstName }} !</h1> <h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Bienvenue {{ firstName }} !</h1>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Votre compte sur le <strong>CRM Ecosplay</strong> a ete cree par l'administration de l'association E-Cosplay.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Votre compte sur le <strong>CRM SITECONSEIL</strong> a ete cree par l'administration de la SARL SITECONSEIL.</p>
<div style="background: #111827; color: #fff; padding: 20px; margin: 20px 0;"> <div style="background: #111827; color: #fff; padding: 20px; margin: 20px 0;">
<p style="font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 12px; opacity: 0.7;">Vos identifiants de connexion</p> <p style="font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 12px; opacity: 0.7;">Vos identifiants de connexion</p>
@@ -49,7 +49,7 @@
<a href="{{ url('app_home') }}" style="display: inline-block; background: #fabf04; border: 2px solid #111827; padding: 12px 24px; color: #111827; font-weight: 900; text-transform: uppercase; font-size: 13px; text-decoration: none; letter-spacing: 1px;">Se connecter</a> <a href="{{ url('app_home') }}" style="display: inline-block; background: #fabf04; border: 2px solid #111827; padding: 12px 24px; color: #111827; font-weight: 900; text-transform: uppercase; font-size: 13px; text-decoration: none; letter-spacing: 1px;">Se connecter</a>
</div> </div>
<p style="font-size: 14px; line-height: 1.6; margin: 16px 0;">Une fois sur la page de connexion, cliquez sur le bouton <strong>"Connexion E-Cosplay"</strong> puis saisissez vos identifiants ci-dessus.</p> <p style="font-size: 14px; line-height: 1.6; margin: 16px 0;">Une fois sur la page de connexion, cliquez sur le bouton <strong>"Connexion SITECONSEIL"</strong> puis saisissez vos identifiants ci-dessus.</p>
<p style="font-size: 12px; color: #999; margin: 16px 0 0;">Pour des raisons de securite, ne partagez jamais vos identifiants. Si vous n'etes pas a l'origine de cette demande, contactez <a href="mailto:contact@e-cosplay.fr" style="color: #4338ca;">contact@e-cosplay.fr</a>.</p> <p style="font-size: 12px; color: #999; margin: 16px 0 0;">Pour des raisons de securite, ne partagez jamais vos identifiants. Si vous n'etes pas a l'origine de cette demande, contactez <a href="mailto:contact@siteconseil.fr" style="color: #4338ca;">contact@siteconseil.fr</a>.</p>
{% endblock %} {% endblock %}

View File

@@ -5,7 +5,7 @@
{% block content %} {% block content %}
<h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Mot de passe modifie</h1> <h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Mot de passe modifie</h1>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Votre mot de passe sur le CRM Ecosplay a ete <strong>modifie avec succes</strong>.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Votre mot de passe sur le CRM SITECONSEIL a ete <strong>modifie avec succes</strong>.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Si vous n'etes pas a l'origine de cette modification, contactez immediatement notre support a l'adresse <a href="mailto:contact@e-cosplay.fr" style="color: #4338ca;">contact@e-cosplay.fr</a>.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Si vous n'etes pas a l'origine de cette modification, contactez immediatement notre support a l'adresse <a href="mailto:contact@siteconseil.fr" style="color: #4338ca;">contact@siteconseil.fr</a>.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>Association E-Cosplay</strong></p> <p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>SARL SITECONSEIL</strong></p>
{% endblock %} {% endblock %}

View File

@@ -1,10 +1,10 @@
{% extends 'email/base.html.twig' %} {% extends 'email/base.html.twig' %}
{% block title %}Bienvenue chez E-Cosplay - Espace Revendeur{% endblock %} {% block title %}Bienvenue chez SITECONSEIL - Espace Revendeur{% endblock %}
{% block content %} {% block content %}
<h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Bienvenue {{ firstName }} !</h1> <h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Bienvenue {{ firstName }} !</h1>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Nous avons le plaisir de vous informer que votre compte <strong>revendeur</strong> a ete cree sur le CRM Ecosplay.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Nous avons le plaisir de vous informer que votre compte <strong>revendeur</strong> a ete cree sur le CRM SITECONSEIL.</p>
<div style="background: #111827; color: #fff; padding: 20px; margin: 20px 0;"> <div style="background: #111827; color: #fff; padding: 20px; margin: 20px 0;">
<p style="font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 12px; opacity: 0.7;">Votre code revendeur</p> <p style="font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 12px; opacity: 0.7;">Votre code revendeur</p>
@@ -56,5 +56,5 @@
</div> </div>
</div> </div>
<p style="font-size: 12px; color: #999; margin: 16px 0 0;">Pour toute question, contactez-nous a <a href="mailto:contact@e-cosplay.fr" style="color: #4338ca;">contact@e-cosplay.fr</a>. Conservez precieusement votre code revendeur {{ codeRevendeur }}.</p> <p style="font-size: 12px; color: #999; margin: 16px 0 0;">Pour toute question, contactez-nous a <a href="mailto:contact@siteconseil.fr" style="color: #4338ca;">contact@siteconseil.fr</a>. Conservez precieusement votre code revendeur {{ codeRevendeur }}.</p>
{% endblock %} {% endblock %}

View File

@@ -6,6 +6,6 @@
<h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Vos donnees personnelles</h1> <h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Vos donnees personnelles</h1>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Suite a votre demande d'acces (article 15 du RGPD), vous trouverez en piece jointe un document PDF contenant l'ensemble des donnees de navigation que nous detenons vous concernant.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Suite a votre demande d'acces (article 15 du RGPD), vous trouverez en piece jointe un document PDF contenant l'ensemble des donnees de navigation que nous detenons vous concernant.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Si vous souhaitez exercer votre droit a l'effacement, vous pouvez en faire la demande depuis la page <a href="https://crm.e-cosplay.fr/legal/rgpd#exercer-droits" style="color: #4338ca;">Politique RGPD</a>.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Si vous souhaitez exercer votre droit a l'effacement, vous pouvez en faire la demande depuis la page <a href="https://crm.siteconseil.fr/legal/rgpd#exercer-droits" style="color: #4338ca;">Politique RGPD</a>.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>Association E-Cosplay</strong></p> <p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>SARL SITECONSEIL</strong></p>
{% endblock %} {% endblock %}

View File

@@ -5,7 +5,7 @@
{% block content %} {% block content %}
<h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Attestation RGPD signee</h1> <h1 style="font-size: 20px; font-weight: bold; text-transform: uppercase; margin: 0 0 16px 0;">Attestation RGPD signee</h1>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Suite a votre demande, vous trouverez en piece jointe votre <strong>attestation d'{{ typeName }}</strong>, signee electroniquement par l'association E-Cosplay.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Suite a votre demande, vous trouverez en piece jointe votre <strong>attestation d'{{ typeName }}</strong>, signee electroniquement par la SARL SITECONSEIL.</p>
<div style="margin: 16px 0; font-size: 13px; width: 100%;"> <div style="margin: 16px 0; font-size: 13px; width: 100%;">
<div style="padding: 8px 12px; background: #f9fafb; border-left: 3px solid #fabf04;"> <div style="padding: 8px 12px; background: #f9fafb; border-left: 3px solid #fabf04;">
<strong>Reference</strong> {{ attestation.reference }} <strong>Reference</strong> {{ attestation.reference }}
@@ -18,5 +18,5 @@
</div> </div>
</div> </div>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Le certificat de signature electronique est egalement joint a cet email.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Le certificat de signature electronique est egalement joint a cet email.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>Association E-Cosplay</strong></p> <p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>SARL SITECONSEIL</strong></p>
{% endblock %} {% endblock %}

View File

@@ -7,5 +7,5 @@
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Suite a votre demande d'effacement (article 17 du RGPD), nous confirmons que <strong>toutes vos donnees de navigation ont ete definitivement supprimees</strong> de nos systemes.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Suite a votre demande d'effacement (article 17 du RGPD), nous confirmons que <strong>toutes vos donnees de navigation ont ete definitivement supprimees</strong> de nos systemes.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Vous trouverez en piece jointe une attestation de suppression au format PDF.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Vous trouverez en piece jointe une attestation de suppression au format PDF.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>Association E-Cosplay</strong></p> <p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>SARL SITECONSEIL</strong></p>
{% endblock %} {% endblock %}

View File

@@ -7,6 +7,6 @@
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Bonjour,</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Nous avons bien recu votre demande concernant vos donnees personnelles.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Nous avons bien recu votre demande concernant vos donnees personnelles.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Apres verification, <strong>aucune donnee n'a ete trouvee</strong> correspondant a l'adresse IP indiquee dans nos systemes.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Apres verification, <strong>aucune donnee n'a ete trouvee</strong> correspondant a l'adresse IP indiquee dans nos systemes.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Si vous pensez qu'il s'agit d'une erreur, n'hesitez pas a nous contacter a <a href="mailto:contact@e-cosplay.fr" style="color: #4338ca;">contact@e-cosplay.fr</a>.</p> <p style="font-size: 14px; line-height: 1.6; margin: 0 0 16px 0;">Si vous pensez qu'il s'agit d'une erreur, n'hesitez pas a nous contacter a <a href="mailto:contact@siteconseil.fr" style="color: #4338ca;">contact@siteconseil.fr</a>.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>Association E-Cosplay</strong></p> <p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>SARL SITECONSEIL</strong></p>
{% endblock %} {% endblock %}

View File

@@ -1,7 +1,7 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block title %}Espace Client - CRM Ecosplay{% endblock %} {% block title %}Espace Client - CRM SITECONSEIL{% endblock %}
{% block description %}Espace client de la plateforme CRM Ecosplay.{% endblock %} {% block description %}Espace client de la plateforme CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,7 +1,7 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block title %}Espace Prestataire - CRM Ecosplay{% endblock %} {% block title %}Espace Prestataire - CRM SITECONSEIL{% endblock %}
{% block description %}Espace prestataire de la plateforme CRM Ecosplay.{% endblock %} {% block description %}Espace prestataire de la plateforme CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">

View File

@@ -1,12 +1,12 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block title %}Redirection externe - CRM Ecosplay{% endblock %} {% block title %}Redirection externe - CRM SITECONSEIL{% endblock %}
{% block header %} {% block header %}
<header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900"> <header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900">
<div class="flex justify-center items-center h-20"> <div class="flex justify-center items-center h-20">
<a href="{{ path('app_home') }}" aria-label="CRM Ecosplay - Accueil"> <a href="{{ path('app_home') }}" aria-label="CRM SITECONSEIL - Accueil">
<img class="h-12 md:h-16 w-auto" src="{{ 'logo.jpg' | imagine_filter('logo') }}" alt="CRM Ecosplay" loading="eager"> <img class="h-12 md:h-16 w-auto" src="{{ 'logo_facture.png' | imagine_filter('logo') }}" alt="CRM SITECONSEIL" loading="eager">
</a> </a>
</div> </div>
</header> </header>
@@ -20,7 +20,7 @@
<svg class="w-12 h-12 mx-auto text-yellow-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"/></svg> <svg class="w-12 h-12 mx-auto text-yellow-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"/></svg>
</div> </div>
<h1 class="text-xl font-black uppercase mb-2">Redirection externe</h1> <h1 class="text-xl font-black uppercase mb-2">Redirection externe</h1>
<p class="text-sm text-gray-600 mb-4">Vous etes sur le point de quitter CRM Ecosplay pour un site externe.</p> <p class="text-sm text-gray-600 mb-4">Vous etes sur le point de quitter CRM SITECONSEIL pour un site externe.</p>
{% if url %} {% if url %}
<div class="border-2 border-gray-200 bg-gray-50 p-3 mb-6 break-all"> <div class="border-2 border-gray-200 bg-gray-50 p-3 mb-6 break-all">

View File

@@ -1,13 +1,13 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block title %}CRM Ecosplay{% endblock %} {% block title %}CRM SITECONSEIL{% endblock %}
{% block description %}Connectez-vous au CRM Ecosplay pour acceder a votre espace client ou revendeur.{% endblock %} {% block description %}Connectez-vous au CRM SITECONSEIL pour acceder a votre espace client ou revendeur.{% endblock %}
{% block header %} {% block header %}
<header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900"> <header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900">
<div class="flex justify-center items-center h-20"> <div class="flex justify-center items-center h-20">
<a href="{{ path('app_home') }}" aria-label="CRM Ecosplay - Accueil"> <a href="{{ path('app_home') }}" aria-label="CRM SITECONSEIL - Accueil">
<img class="h-12 md:h-16 w-auto" src="{{ 'logo.jpg' | imagine_filter('logo') }}" alt="CRM Ecosplay" loading="eager"> <img class="h-12 md:h-16 w-auto" src="{{ 'logo_facture.png' | imagine_filter('logo') }}" alt="CRM SITECONSEIL" loading="eager">
</a> </a>
</div> </div>
</header> </header>
@@ -25,7 +25,7 @@
<div class="w-full max-w-md"> <div class="w-full max-w-md">
<div class="border-4 border-gray-900 bg-white shadow-[8px_8px_0px_rgba(0,0,0,1)]"> <div class="border-4 border-gray-900 bg-white shadow-[8px_8px_0px_rgba(0,0,0,1)]">
<div class="bg-yellow-400 border-b-4 border-gray-900 p-6 text-center"> <div class="bg-yellow-400 border-b-4 border-gray-900 p-6 text-center">
<h1 class="text-3xl font-black uppercase tracking-tighter italic">CRM Ecosplay</h1> <h1 class="text-3xl font-black uppercase tracking-tighter italic">CRM SITECONSEIL</h1>
<p class="text-sm font-bold mt-1">Espace de gestion</p> <p class="text-sm font-bold mt-1">Espace de gestion</p>
</div> </div>
<div class="p-8"> <div class="p-8">
@@ -57,7 +57,7 @@
<a href="{{ path('connect_keycloak') }}" <a href="{{ path('connect_keycloak') }}"
class="w-full flex items-center justify-center gap-2 px-6 py-3 border-2 border-gray-900 bg-gray-900 text-white font-black uppercase tracking-widest text-sm hover:bg-indigo-600 transition-all"> class="w-full flex items-center justify-center gap-2 px-6 py-3 border-2 border-gray-900 bg-gray-900 text-white font-black uppercase tracking-widest text-sm hover:bg-indigo-600 transition-all">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></svg> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></svg>
Connexion E-Cosplay Connexion SITECONSEIL
</a> </a>
</div> </div>
</div> </div>

View File

@@ -3,8 +3,8 @@
{% block header %} {% block header %}
<header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900"> <header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900">
<div class="flex justify-center items-center h-20"> <div class="flex justify-center items-center h-20">
<a href="{{ path('app_home') }}" aria-label="CRM Ecosplay - Accueil"> <a href="{{ path('app_home') }}" aria-label="CRM SITECONSEIL - Accueil">
<img class="h-12 md:h-16 w-auto" src="{{ 'logo.jpg' | imagine_filter('logo') }}" alt="CRM Ecosplay" loading="eager"> <img class="h-12 md:h-16 w-auto" src="{{ 'logo_facture.png' | imagine_filter('logo') }}" alt="CRM SITECONSEIL" loading="eager">
</a> </a>
</div> </div>
</header> </header>

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Conditions Generales d'Utilisation - CRM Ecosplay{% endblock %} {% block title %}Conditions Generales d'Utilisation - CRM SITECONSEIL{% endblock %}
{% block description %}Conditions generales d'utilisation du CRM Ecosplay.{% endblock %} {% block description %}Conditions generales d'utilisation du CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">
@@ -11,18 +11,18 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 1 - Objet</h2> <h2 class="text-xl font-black uppercase mb-2">Article 1 - Objet</h2>
<p>Les presentes Conditions Generales d'Utilisation (ci-apres "CGU") ont pour objet de definir les modalites et conditions d'acces et d'utilisation de la plateforme <strong>CRM Ecosplay</strong>, accessible a l'adresse <strong>crm.e-cosplay.fr</strong>, editee par l'association E-Cosplay.</p> <p>Les presentes Conditions Generales d'Utilisation (ci-apres "CGU") ont pour objet de definir les modalites et conditions d'acces et d'utilisation de la plateforme <strong>CRM SITECONSEIL</strong>, accessible a l'adresse <strong>crm.siteconseil.fr</strong>, editee par la SARL SITECONSEIL.</p>
<p class="mt-2">Le CRM Ecosplay est une plateforme de gestion de la relation commerciale et administrative entre l'association E-Cosplay, ses clients et ses prestataires (revendeurs). L'acces a la Plateforme implique l'acceptation pleine et entiere des presentes CGU.</p> <p class="mt-2">Le CRM SITECONSEIL est une plateforme de gestion de la relation commerciale et administrative entre la SARL SITECONSEIL, ses clients et ses prestataires (revendeurs). L'acces a la Plateforme implique l'acceptation pleine et entiere des presentes CGU.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 2 - Editeur</h2> <h2 class="text-xl font-black uppercase mb-2">Article 2 - Editeur</h2>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Association E-Cosplay</strong></li> <li><strong>SARL SITECONSEIL</strong></li>
<li>RNA : W022006988 / SIREN : 943121517</li> <li>RNA : W022006988 / SIREN : 943121517</li>
<li>Siege social : 42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>Siege social : 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
<li>Email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
<li>Site web : <a href="https://www.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">www.e-cosplay.fr</a></li> <li>Site web : <a href="https://www.siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">www.siteconseil.fr</a></li>
</ul> </ul>
</section> </section>
@@ -48,38 +48,38 @@
<li>Tableaux de bord et statistiques de vente</li> <li>Tableaux de bord et statistiques de vente</li>
</ul> </ul>
<p class="mt-3">L'utilisation interne de la Plateforme par l'association E-Cosplay et ses membres reste <strong>strictement confidentielle</strong> et n'est pas couverte par les presentes CGU.</p> <p class="mt-3">L'utilisation interne de la Plateforme par la SARL SITECONSEIL et ses membres reste <strong>strictement confidentielle</strong> et n'est pas couverte par les presentes CGU.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 4 - Acces a la Plateforme</h2> <h2 class="text-xl font-black uppercase mb-2">Article 4 - Acces a la Plateforme</h2>
<p>L'acces au CRM Ecosplay est reserve aux personnes disposant d'un compte utilisateur valide, delivre par l'association E-Cosplay. L'acces peut etre accorde aux categories suivantes :</p> <p>L'acces au CRM SITECONSEIL est reserve aux personnes disposant d'un compte utilisateur valide, delivre par la SARL SITECONSEIL. L'acces peut etre accorde aux categories suivantes :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Clients</strong> : personnes physiques ou morales beneficiant des produits et services de l'association</li> <li><strong>Clients</strong> : personnes physiques ou morales beneficiant des produits et services de la société</li>
<li><strong>Prestataires (revendeurs)</strong> : personnes physiques ou morales commercialisant les produits et services de l'association</li> <li><strong>Prestataires (revendeurs)</strong> : personnes physiques ou morales commercialisant les produits et services de la société</li>
</ul> </ul>
<p class="mt-2">L'association se reserve le droit de suspendre ou supprimer tout compte, sans preavis, en cas de non-respect des presentes CGU.</p> <p class="mt-2">La société se reserve le droit de suspendre ou supprimer tout compte, sans preavis, en cas de non-respect des presentes CGU.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 5 - Creation de compte et authentification</h2> <h2 class="text-xl font-black uppercase mb-2">Article 5 - Creation de compte et authentification</h2>
<p><strong>Aucune inscription en libre-service n'est disponible sur la Plateforme.</strong> La creation d'un compte utilisateur est exclusivement a l'initiative de l'association E-Cosplay. Un compte peut etre cree :</p> <p><strong>Aucune inscription en libre-service n'est disponible sur la Plateforme.</strong> La creation d'un compte utilisateur est exclusivement a l'initiative de la SARL SITECONSEIL. Un compte peut etre cree :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Suite a une commande de produits ou services aupres de l'association</li> <li>Suite a une commande de produits ou services aupres de la société</li>
<li>Suite a la conclusion d'un contrat de partenariat (prestataire/revendeur)</li> <li>Suite a la conclusion d'un contrat de partenariat (prestataire/revendeur)</li>
<li>Sur demande validee par un membre de l'association</li> <li>Sur demande validee par un membre de la société</li>
</ul> </ul>
<p class="mt-2">L'authentification pour les clients et prestataires s'effectue via :</p> <p class="mt-2">L'authentification pour les clients et prestataires s'effectue via :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Une adresse email et un mot de passe</li> <li>Une adresse email et un mot de passe</li>
<li>Une double authentification (2FA) obligatoire, via un code envoye par email ou une application d'authentification (TOTP)</li> <li>Une double authentification (2FA) obligatoire, via un code envoye par email ou une application d'authentification (TOTP)</li>
</ul> </ul>
<p class="mt-2">Les methodes d'authentification et de creation de compte utilisees par les membres de l'association restent <strong>strictement confidentielles</strong>.</p> <p class="mt-2">Les methodes d'authentification et de creation de compte utilisees par les membres de la société restent <strong>strictement confidentielles</strong>.</p>
<p class="mt-2">L'utilisateur s'engage a :</p> <p class="mt-2">L'utilisateur s'engage a :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Ne pas communiquer ses identifiants de connexion a des tiers</li> <li>Ne pas communiquer ses identifiants de connexion a des tiers</li>
<li>Activer et maintenir la double authentification sur son compte</li> <li>Activer et maintenir la double authentification sur son compte</li>
<li>Informer immediatement l'association en cas de suspicion d'utilisation non autorisee de son compte</li> <li>Informer immediatement la société en cas de suspicion d'utilisation non autorisee de son compte</li>
</ul> </ul>
<p class="mt-2">L'utilisateur est seul responsable de l'utilisation faite de son compte et de la confidentialite de ses identifiants.</p> <p class="mt-2">L'utilisateur est seul responsable de l'utilisation faite de son compte et de la confidentialite de ses identifiants.</p>
</section> </section>
@@ -109,7 +109,7 @@
<p class="mt-3"><strong>Pour les prestataires (revendeurs) :</strong></p> <p class="mt-3"><strong>Pour les prestataires (revendeurs) :</strong></p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Les prestataires disposent d'un acces a leurs ventes, commandes et factures via l'Espace Prestataire</li> <li>Les prestataires disposent d'un acces a leurs ventes, commandes et factures via l'Espace Prestataire</li>
<li>Les conditions de remuneration et de commission sont definies dans le contrat de partenariat conclu entre le prestataire et l'association</li> <li>Les conditions de remuneration et de commission sont definies dans le contrat de partenariat conclu entre le prestataire et la société</li>
</ul> </ul>
</section> </section>
@@ -128,18 +128,18 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 9 - Donnees personnelles</h2> <h2 class="text-xl font-black uppercase mb-2">Article 9 - Donnees personnelles</h2>
<p>La Plateforme collecte et traite des donnees personnelles conformement au Reglement General sur la Protection des Donnees (RGPD). Pour plus d'informations, consultez notre <a href="{{ path('app_legal_rgpd') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de confidentialite</a>.</p> <p>La Plateforme collecte et traite des donnees personnelles conformement au Reglement General sur la Protection des Donnees (RGPD). Pour plus d'informations, consultez notre <a href="{{ path('app_legal_rgpd') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de confidentialite</a>.</p>
<p class="mt-2">L'utilisateur dispose d'un droit d'acces, de rectification, d'effacement et de portabilite de ses donnees. Ces droits peuvent etre exerces depuis la page <a href="{{ path('app_legal_rgpd') }}#exercer-droits" class="text-indigo-800 underline hover:text-indigo-950">Exercer vos droits</a> ou en contactant le DPO a l'adresse <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a>.</p> <p class="mt-2">L'utilisateur dispose d'un droit d'acces, de rectification, d'effacement et de portabilite de ses donnees. Ces droits peuvent etre exerces depuis la page <a href="{{ path('app_legal_rgpd') }}#exercer-droits" class="text-indigo-800 underline hover:text-indigo-950">Exercer vos droits</a> ou en contactant le DPO a l'adresse <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a>.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 10 - Propriete intellectuelle</h2> <h2 class="text-xl font-black uppercase mb-2">Article 10 - Propriete intellectuelle</h2>
<p>L'ensemble des elements composant la Plateforme (logiciels, textes, images, graphismes, logos, icones, code source, base de donnees) est la propriete exclusive de l'association E-Cosplay ou de ses partenaires, et est protege par les lois francaises et internationales relatives a la propriete intellectuelle.</p> <p>L'ensemble des elements composant la Plateforme (logiciels, textes, images, graphismes, logos, icones, code source, base de donnees) est la propriete exclusive de la SARL SITECONSEIL ou de ses partenaires, et est protege par les lois francaises et internationales relatives a la propriete intellectuelle.</p>
<p class="mt-2">Toute reproduction, representation, modification, distribution ou exploitation, meme partielle, de la Plateforme ou de son contenu, sans autorisation ecrite prealable, est strictement interdite.</p> <p class="mt-2">Toute reproduction, representation, modification, distribution ou exploitation, meme partielle, de la Plateforme ou de son contenu, sans autorisation ecrite prealable, est strictement interdite.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 11 - Signature electronique</h2> <h2 class="text-xl font-black uppercase mb-2">Article 11 - Signature electronique</h2>
<p>La Plateforme integre un service de signature electronique fourni par <strong>DocuSeal</strong>, heberge sur l'infrastructure de l'association (<strong>signature.esy-web.dev</strong>). Ce service est utilise pour la signature des attestations, contrats et documents officiels.</p> <p>La Plateforme integre un service de signature electronique fourni par <strong>DocuSeal</strong>, heberge sur l'infrastructure de la société (<strong>signature.esy-web.dev</strong>). Ce service est utilise pour la signature des attestations, contrats et documents officiels.</p>
<p class="mt-2">En utilisant ce service, l'utilisateur reconnait que :</p> <p class="mt-2">En utilisant ce service, l'utilisateur reconnait que :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>La signature electronique a la meme valeur juridique qu'une signature manuscrite conformement au reglement eIDAS et au Code civil francais (article 1367)</li> <li>La signature electronique a la meme valeur juridique qu'une signature manuscrite conformement au reglement eIDAS et au Code civil francais (article 1367)</li>
@@ -160,17 +160,17 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 12 - Disponibilite</h2> <h2 class="text-xl font-black uppercase mb-2">Article 12 - Disponibilite</h2>
<p>L'association E-Cosplay s'efforce d'assurer la disponibilite de la Plateforme 24h/24 et 7j/7. Toutefois, l'acces peut etre temporairement interrompu pour des raisons de maintenance, de mise a jour ou en cas de force majeure.</p> <p>La SARL SITECONSEIL s'efforce d'assurer la disponibilite de la Plateforme 24h/24 et 7j/7. Toutefois, l'acces peut etre temporairement interrompu pour des raisons de maintenance, de mise a jour ou en cas de force majeure.</p>
<p class="mt-2">L'association ne saurait etre tenue responsable des interruptions de service et de leurs consequences eventuelles.</p> <p class="mt-2">La société ne saurait etre tenue responsable des interruptions de service et de leurs consequences eventuelles.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 13 - Responsabilites</h2> <h2 class="text-xl font-black uppercase mb-2">Article 13 - Responsabilites</h2>
<p><strong>Responsabilite de l'association :</strong></p> <p><strong>Responsabilite de la société :</strong></p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>L'association met en oeuvre les moyens necessaires pour assurer la securite et la confidentialite des donnees</li> <li>La société met en oeuvre les moyens necessaires pour assurer la securite et la confidentialite des donnees</li>
<li>L'association ne garantit pas l'absence totale d'erreurs ou de failles de securite</li> <li>La société ne garantit pas l'absence totale d'erreurs ou de failles de securite</li>
<li>L'association ne saurait etre tenue responsable des dommages indirects resultant de l'utilisation de la Plateforme</li> <li>La société ne saurait etre tenue responsable des dommages indirects resultant de l'utilisation de la Plateforme</li>
</ul> </ul>
<p class="mt-3"><strong>Responsabilite de l'utilisateur :</strong></p> <p class="mt-3"><strong>Responsabilite de l'utilisateur :</strong></p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
@@ -187,22 +187,22 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 15 - Modification des CGU</h2> <h2 class="text-xl font-black uppercase mb-2">Article 15 - Modification des CGU</h2>
<p>L'association E-Cosplay se reserve le droit de modifier les presentes CGU a tout moment. Les utilisateurs seront informes de toute modification substantielle par email ou par notification sur la Plateforme.</p> <p>La SARL SITECONSEIL se reserve le droit de modifier les presentes CGU a tout moment. Les utilisateurs seront informes de toute modification substantielle par email ou par notification sur la Plateforme.</p>
<p class="mt-2">La poursuite de l'utilisation de la Plateforme apres modification des CGU vaut acceptation des nouvelles conditions.</p> <p class="mt-2">La poursuite de l'utilisation de la Plateforme apres modification des CGU vaut acceptation des nouvelles conditions.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 16 - Resiliation et cloture de compte</h2> <h2 class="text-xl font-black uppercase mb-2">Article 16 - Resiliation et cloture de compte</h2>
<p><strong>A l'initiative de l'utilisateur :</strong></p> <p><strong>A l'initiative de l'utilisateur :</strong></p>
<p class="mt-2">L'utilisateur peut demander la cloture de son compte en contactant l'association a l'adresse <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a>. La cloture du compte est soumise aux conditions suivantes :</p> <p class="mt-2">L'utilisateur peut demander la cloture de son compte en contactant la société a l'adresse <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a>. La cloture du compte est soumise aux conditions suivantes :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Le compte ne peut etre cloture que si l'utilisateur est <strong>en regle</strong> vis-a-vis de l'association (aucun impaye, aucune facture en cours, aucune obligation contractuelle en suspens)</li> <li>Le compte ne peut etre cloture que si l'utilisateur est <strong>en regle</strong> vis-a-vis de la société (aucun impaye, aucune facture en cours, aucune obligation contractuelle en suspens)</li>
<li>En cas d'impaye ou de litige en cours, la demande de cloture sera refusee jusqu'a la regularisation complete de la situation</li> <li>En cas d'impaye ou de litige en cours, la demande de cloture sera refusee jusqu'a la regularisation complete de la situation</li>
<li>Une <strong>attestation de conformite</strong> pourra etre demandee prealablement a la cloture</li> <li>Une <strong>attestation de conformite</strong> pourra etre demandee prealablement a la cloture</li>
</ul> </ul>
<p class="mt-2">Une fois la cloture effective, une <strong>attestation de fin de contrat</strong> sera delivree a l'utilisateur, confirmant la resiliation de son acces a la Plateforme.</p> <p class="mt-2">Une fois la cloture effective, une <strong>attestation de fin de contrat</strong> sera delivree a l'utilisateur, confirmant la resiliation de son acces a la Plateforme.</p>
<p class="mt-3"><strong>A l'initiative de l'association :</strong></p> <p class="mt-3"><strong>A l'initiative de la société :</strong></p>
<p class="mt-2">L'association se reserve le droit de suspendre ou de resilier l'acces d'un utilisateur dans les cas suivants :</p> <p class="mt-2">La société se reserve le droit de suspendre ou de resilier l'acces d'un utilisateur dans les cas suivants :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Manquement aux presentes CGU</li> <li>Manquement aux presentes CGU</li>
<li>Non-paiement des sommes dues apres mise en demeure restee infructueuse</li> <li>Non-paiement des sommes dues apres mise en demeure restee infructueuse</li>
@@ -215,16 +215,16 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 17 - Droit applicable et litiges</h2> <h2 class="text-xl font-black uppercase mb-2">Article 17 - Droit applicable et litiges</h2>
<p>Les presentes CGU sont regies par le droit francais. En cas de litige relatif a l'interpretation ou a l'execution des presentes CGU, les parties s'efforceront de trouver une solution amiable.</p> <p>Les presentes CGU sont regies par le droit francais. En cas de litige relatif a l'interpretation ou a l'execution des presentes CGU, les parties s'efforceront de trouver une solution amiable.</p>
<p class="mt-2">A defaut d'accord amiable, les tribunaux competents de Laon (Aisne) seront seuls competents.</p> <p class="mt-2">A defaut d'accord amiable, les tribunaux competents de Saint-Quentin (Aisne) seront seuls competents.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 18 - Contact</h2> <h2 class="text-xl font-black uppercase mb-2">Article 18 - Contact</h2>
<p>Pour toute question relative aux presentes CGU :</p> <p>Pour toute question relative aux presentes CGU :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
<li>Telephone : 06 79 34 88 02</li> <li>Telephone : 06 79 34 88 02</li>
<li>Courrier : Association E-Cosplay, 42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>Courrier : SARL SITECONSEIL, 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
</ul> </ul>
</section> </section>

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Conditions Generales de Vente - CRM Ecosplay{% endblock %} {% block title %}Conditions Generales de Vente - CRM SITECONSEIL{% endblock %}
{% block description %}Conditions generales de vente du CRM Ecosplay.{% endblock %} {% block description %}Conditions generales de vente du CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">
@@ -11,46 +11,52 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 1 - Objet</h2> <h2 class="text-xl font-black uppercase mb-2">Article 1 - Objet</h2>
<p>Les presentes Conditions Generales de Vente (ci-apres "CGV") s'appliquent a l'ensemble des produits et services proposes par l'association E-Cosplay, sauf mention speciale contraire precisee dans un contrat ou un document particulier.</p> <p>Les presentes Conditions Generales de Vente (ci-apres "CGV") s'appliquent a l'ensemble des produits et services proposes par la SARL SITECONSEIL, sauf mention speciale contraire precisee dans un contrat ou un document particulier.</p>
<p class="mt-2">La validation des presentes CGV par le client reste valable pendant toute la duree du contrat en cours, sauf cas particulier expressement convenu entre les parties.</p> <p class="mt-2">La validation des presentes CGV par le client reste valable pendant toute la duree du contrat en cours, sauf cas particulier expressement convenu entre les parties.</p>
<p class="mt-2">Toute commande ou souscription a un service implique l'acceptation pleine et entiere des presentes CGV.</p> <p class="mt-2">Toute commande ou souscription a un service implique l'acceptation pleine et entiere des presentes CGV.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 2 - Prestations</h2> <h2 class="text-xl font-black uppercase mb-2">Article 2 - Prestations</h2>
<p>L'association E-Cosplay propose les prestations suivantes, accessibles via la plateforme <strong>crm.e-cosplay.fr</strong> :</p> <p>La SARL SITECONSEIL propose les prestations suivantes, accessibles via la plateforme <strong>crm.siteconseil.fr</strong> :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Service de Site Internet</strong> : creation, hebergement et maintenance de sites internet via le CMS <strong>Esy-Web</strong>, solution developpee par l'association</li> <li><strong>Service de Site Internet</strong> : creation, hebergement et maintenance de sites internet via le CMS <strong>Esy-Web</strong>, solution developpee par la société</li>
<li><strong>Service de Billetterie en ligne</strong> : creation, gestion et vente de billets en ligne via la plateforme <a href="https://ticket.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">ticket.e-cosplay.fr</a></li> <li><strong>Esy-Mail</strong> : hebergement et gestion de messagerie professionnelle, utilisant l'infrastructure Amazon Simple Email Service (AWS SES)</li>
<li><strong>Service aux Associations</strong> : gestion des adherents, comptabilite associative et outils de gestion via la plateforme <a href="https://asso.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">asso.e-cosplay.fr</a></li> <li><strong>Esy-Mailer</strong> : creation et envoi de campagnes emailing</li>
<li><strong>Service de Mail</strong> : hebergement et gestion de messagerie professionnelle via <a href="https://mail.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">mail.e-cosplay.fr</a>, solution developpee par la <strong>SARL SITECONSEIL</strong>, utilisant l'infrastructure Amazon Simple Email Service (AWS SES)</li> <li><strong>Esy-Analytics</strong> : suivi et analyse de frequentation des sites internet</li>
<li><strong>Service de Mailing</strong> : creation et envoi de campagnes emailing via la plateforme <a href="https://mailing.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">mailing.e-cosplay.fr</a></li> <li><strong>Esy-Monitor</strong> : surveillance de la disponibilite et des performances des services</li>
<li><strong>Service de Signature Electronique</strong> : signature electronique de documents via la plateforme <a href="https://signature.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">signature.e-cosplay.fr</a>, propulsee par <strong>DocuSeal</strong></li> <li><strong>Esy-Defender</strong> : protection et securisation des infrastructures et des sites internet</li>
<li><strong>Esy-Translate</strong> : traduction automatique et multilingue des contenus</li>
<li><strong>Esy-Signature</strong> : signature electronique de documents</li>
<li><strong>Esy-Creator</strong> : maintenance graphique et editoriale de votre site internet (refonte de pages, creation de contenus, optimisation SEO et verification multi-supports)</li>
<li><strong>Esy-Aide</strong> : outil d'aide en ligne integre a Esy-Web, facilitant l'utilisation du site pour l'administrateur via des raccourcis sans quitter l'interface principale</li>
<li><strong>Esy-Meet</strong> : prise de rendez-vous en ligne, propulsee par <strong>Cal.com</strong></li>
<li><strong>Esy-Tchat</strong> : chat en ligne en direct sur votre site internet, propulsee par <strong>Chatwoot</strong></li>
<li><strong>Service de Nom de Domaine</strong> : depot, enregistrement, renouvellement et gestion de noms de domaine pour le compte du client</li> <li><strong>Service de Nom de Domaine</strong> : depot, enregistrement, renouvellement et gestion de noms de domaine pour le compte du client</li>
</ul> </ul>
<p class="mt-2">Le detail des prestations, leurs specificites techniques et les options disponibles sont precises dans le contrat de service conclu entre le client et l'association.</p> <p class="mt-2">L'ensemble des services est heberge sur l'infrastructure geree par la SARL SITECONSEIL, a l'exception d'<strong>Esy-Meet</strong> (propulsee par Cal.com) et d'<strong>Esy-Tchat</strong> (propulsee par Chatwoot) qui sont des solutions tierces, sauf disposition exceptionnelle.</p>
<p class="mt-2">Cette liste n'est pas exhaustive. De nouveaux services pourront etre proposes a l'avenir. L'association se reserve le droit de faire evoluer son offre de prestations. Les clients seront informes de toute modification impactant leur contrat en cours.</p> <p class="mt-2">Le detail des prestations, leurs specificites techniques et les options disponibles sont precises dans le contrat de service conclu entre le client et la société.</p>
<p class="mt-2">Cette liste n'est pas exhaustive. De nouveaux services pourront etre proposes a l'avenir. La société se reserve le droit de faire evoluer son offre de prestations. Les clients seront informes de toute modification impactant leur contrat en cours.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 3 - Disponibilite des services</h2> <h2 class="text-xl font-black uppercase mb-2">Article 3 - Disponibilite des services</h2>
<p>L'association E-Cosplay s'efforce d'assurer la disponibilite de ses services <strong>24h/24 et 7j/7</strong>. Toutefois, l'acces aux services peut etre temporairement interrompu pour des raisons de :</p> <p>La SARL SITECONSEIL s'efforce d'assurer la disponibilite de ses services <strong>24h/24 et 7j/7</strong>. Toutefois, l'acces aux services peut etre temporairement interrompu pour des raisons de :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Maintenance programmee ou d'urgence</li> <li>Maintenance programmee ou d'urgence</li>
<li>Mise a jour des infrastructures ou des logiciels</li> <li>Mise a jour des infrastructures ou des logiciels</li>
<li>Incident technique ou panne chez un prestataire tiers (hebergeur, fournisseur d'acces, etc.)</li> <li>Incident technique ou panne chez un prestataire tiers (hebergeur, fournisseur d'acces, etc.)</li>
<li>Force majeure</li> <li>Force majeure</li>
</ul> </ul>
<p class="mt-2">L'association met en oeuvre les moyens raisonnables pour limiter la duree et la frequence des interruptions. En cas de maintenance programmee, les clients seront informes dans la mesure du possible avec un preavis raisonnable.</p> <p class="mt-2">La société met en oeuvre les moyens raisonnables pour limiter la duree et la frequence des interruptions. En cas de maintenance programmee, les clients seront informes dans la mesure du possible avec un preavis raisonnable.</p>
<p class="mt-2">L'association ne saurait etre tenue responsable des dommages directs ou indirects resultant d'une interruption de service, quelle qu'en soit la cause.</p> <p class="mt-2">La société ne saurait etre tenue responsable des dommages directs ou indirects resultant d'une interruption de service, quelle qu'en soit la cause.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 4 - Tarifs</h2> <h2 class="text-xl font-black uppercase mb-2">Article 4 - Tarifs</h2>
<p>Tous les tarifs sont exprimes en <strong>euros hors taxes (€ HT)</strong>. Les tarifs des prestations proposees par l'association E-Cosplay sont <strong>evolutifs et non fixes</strong>. Ils peuvent etre modifies a tout moment en fonction de l'evolution des couts, des services et du marche.</p> <p>Tous les tarifs sont exprimes en <strong>euros toutes taxes comprises (€ TTC)</strong>. Les tarifs des prestations proposees par la SARL SITECONSEIL sont <strong>evolutifs et non fixes</strong>. Ils peuvent etre modifies a tout moment en fonction de l'evolution des couts, des services et du marche.</p>
<p class="mt-2">L'ensemble des tarifs en vigueur est consultable sur la page <a href="{{ path('app_legal_tarif') }}" class="text-indigo-800 underline hover:text-indigo-950">Tarifs</a>.</p> <p class="mt-2">L'ensemble des tarifs en vigueur est consultable sur la page <a href="{{ path('app_legal_tarif') }}" class="text-indigo-800 underline hover:text-indigo-950">Tarifs</a>.</p>
<p class="mt-2">En cas de modification tarifaire, les clients disposant d'un contrat en cours ou utilisant un service concerne seront <strong>avertis au minimum 1 mois avant l'entree en vigueur</strong> du nouveau tarif, par email ou par notification sur la Plateforme.</p> <p class="mt-2">En cas de modification tarifaire, les clients disposant d'un contrat en cours ou utilisant un service concerne seront <strong>avertis au minimum 1 mois avant l'entree en vigueur</strong> du nouveau tarif, par email ou par notification sur la Plateforme.</p>
<p class="mt-2">Lors de la signature d'un contrat, le tarif en vigueur est <strong>garanti pendant une duree de 6 mois</strong> a compter de la date de signature. Aucune modification tarifaire ne pourra etre appliquee durant cette periode.</p>
<p class="mt-2">A l'issue de ce delai de preavis, le client pourra :</p> <p class="mt-2">A l'issue de ce delai de preavis, le client pourra :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Accepter le nouveau tarif et poursuivre l'utilisation du service</li> <li>Accepter le nouveau tarif et poursuivre l'utilisation du service</li>
@@ -68,27 +74,26 @@
<li>Prelevement SEPA</li> <li>Prelevement SEPA</li>
<li>Tout autre moyen de paiement disponible via Stripe</li> <li>Tout autre moyen de paiement disponible via Stripe</li>
</ul> </ul>
<p class="mt-2"><strong>Aucun paiement en especes, par cheque ou par tout autre moyen hors Stripe n'est accepte</strong>, sauf accord ecrit prealable de l'association.</p>
<p class="mt-2">Les factures sont payables a reception, sauf conditions particulieres precisees dans le contrat de service. En cas de souscription a un abonnement, le paiement est preleve automatiquement selon la periodicite convenue (mensuelle, trimestrielle ou annuelle).</p> <p class="mt-2">Les factures sont payables a reception, sauf conditions particulieres precisees dans le contrat de service. En cas de souscription a un abonnement, le paiement est preleve automatiquement selon la periodicite convenue (mensuelle, trimestrielle ou annuelle).</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 6 - Validation des commandes et verification</h2> <h2 class="text-xl font-black uppercase mb-2">Article 6 - Validation des commandes et verification</h2>
<p>Toute commande ou souscription a un service fait l'objet de <strong>verifications prealables</strong> par l'association E-Cosplay avant acceptation. Ces verifications peuvent inclure :</p> <p>Toute commande ou souscription a un service fait l'objet de <strong>verifications prealables</strong> par la SARL SITECONSEIL avant acceptation. Ces verifications peuvent inclure :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Verification de l'entreprise</strong> : controle du numero SIRET/SIREN aupres des registres officiels de l'Etat (INSEE, Infogreffe) afin de s'assurer que l'entreprise est en activite et non suspendue, radiee ou en liquidation</li> <li><strong>Verification de l'entreprise</strong> : controle du numero SIRET/SIREN aupres des registres officiels de l'Etat (INSEE, Infogreffe) afin de s'assurer que l'entreprise est en activite et non suspendue, radiee ou en liquidation</li>
<li><strong>Verification d'identite</strong> : controle de l'identite du representant legal ou du contact principal, si requis par la nature de la prestation</li> <li><strong>Verification d'identite</strong> : controle de l'identite du representant legal ou du contact principal, si requis par la nature de la prestation</li>
<li><strong>Verification de solvabilite</strong> : analyse de la solvabilite du client, si requis par le montant ou la duree de l'engagement</li> <li><strong>Verification de solvabilite</strong> : analyse de la solvabilite du client, si requis par le montant ou la duree de l'engagement</li>
</ul> </ul>
<p class="mt-2">L'association se reserve le <strong>droit de refuser toute commande</strong>, sans avoir a justifier sa decision, notamment dans les cas suivants :</p> <p class="mt-2">La société se reserve le <strong>droit de refuser toute commande</strong>, sans avoir a justifier sa decision, notamment dans les cas suivants :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Informations fournies inexactes ou incompletes</li> <li>Informations fournies inexactes ou incompletes</li>
<li>Entreprise non immatriculee, radiee, suspendue ou en liquidation</li> <li>Entreprise non immatriculee, radiee, suspendue ou en liquidation</li>
<li>Solvabilite insuffisante</li> <li>Solvabilite insuffisante</li>
<li>Antecedents d'impayes aupres de l'association</li> <li>Antecedents d'impayes aupres de la société</li>
<li>Activite du client incompatible avec les valeurs ou l'objet de l'association</li> <li>Activite du client incompatible avec les valeurs ou l'objet de la société</li>
</ul> </ul>
<p class="mt-2">En cas de refus, le client sera informe par email. Aucun paiement ne sera preleve tant que la commande n'a pas ete validee par l'association.</p> <p class="mt-2">En cas de refus, le client sera informe par email. Aucun paiement ne sera preleve tant que la commande n'a pas ete validee par la société.</p>
</section> </section>
<section> <section>
@@ -109,12 +114,12 @@
<li><strong>J+8 (Mise en demeure et suspension)</strong> : sans regularisation, les services sont <strong>suspendus</strong> et une <strong>mise en demeure</strong> est adressee au client</li> <li><strong>J+8 (Mise en demeure et suspension)</strong> : sans regularisation, les services sont <strong>suspendus</strong> et une <strong>mise en demeure</strong> est adressee au client</li>
<li><strong>J+15 (Resiliation et recouvrement)</strong> : sans regularisation, le contrat est <strong>resilie de plein droit</strong> et la creance est transmise en <strong>recouvrement</strong></li> <li><strong>J+15 (Resiliation et recouvrement)</strong> : sans regularisation, le contrat est <strong>resilie de plein droit</strong> et la creance est transmise en <strong>recouvrement</strong></li>
</ul> </ul>
<p class="mt-2">L'association se reserve le droit d'appliquer des <strong>penalites de retard</strong> conformement a l'article 9 (Impayes).</p> <p class="mt-2">La société se reserve le droit d'appliquer des <strong>penalites de retard</strong> conformement a l'article 9 (Impayes).</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 8 - Droit de retractation</h2> <h2 class="text-xl font-black uppercase mb-2">Article 8 - Droit de retractation</h2>
<p>Conformement a l'article L221-28 du Code de la consommation, le droit de retractation <strong>ne s'applique pas</strong> aux prestations proposees par l'association E-Cosplay, celles-ci constituant des <strong>services numeriques fournis de maniere immediate</strong> apres la validation de la commande.</p> <p>Conformement a l'article L221-28 du Code de la consommation, le droit de retractation <strong>ne s'applique pas</strong> aux prestations proposees par la SARL SITECONSEIL, celles-ci constituant des <strong>services numeriques fournis de maniere immediate</strong> apres la validation de la commande.</p>
<p class="mt-2">En acceptant les presentes CGV et en validant sa commande, le client reconnait et accepte expressement que :</p> <p class="mt-2">En acceptant les presentes CGV et en validant sa commande, le client reconnait et accepte expressement que :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>L'execution du service commence immediatement apres la confirmation de la commande</li> <li>L'execution du service commence immediatement apres la confirmation de la commande</li>
@@ -145,14 +150,14 @@
<h2 class="text-xl font-black uppercase mb-2">Article 10 - Recouvrement</h2> <h2 class="text-xl font-black uppercase mb-2">Article 10 - Recouvrement</h2>
<p>En cas d'impaye sans aucune action de regularisation de la part du client, la creance sera transmise a une <strong>societe de recouvrement</strong> dans un delai de <strong>30 jours</strong> a compter de la date d'echeance initiale.</p> <p>En cas d'impaye sans aucune action de regularisation de la part du client, la creance sera transmise a une <strong>societe de recouvrement</strong> dans un delai de <strong>30 jours</strong> a compter de la date d'echeance initiale.</p>
<p class="mt-2">Les frais de recouvrement engages (frais de dossier, honoraires de la societe de recouvrement, frais de justice le cas echeant) seront <strong>integralement a la charge du client debiteur</strong>, en plus du montant de la creance, des penalites de retard et des frais de remise en service.</p> <p class="mt-2">Les frais de recouvrement engages (frais de dossier, honoraires de la societe de recouvrement, frais de justice le cas echeant) seront <strong>integralement a la charge du client debiteur</strong>, en plus du montant de la creance, des penalites de retard et des frais de remise en service.</p>
<p class="mt-2">Avant toute transmission en recouvrement, l'association aura prealablement :</p> <p class="mt-2">Avant toute transmission en recouvrement, la société aura prealablement :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Envoye les relances prevues a l'article 7 (processus de facturation)</li> <li>Envoye les relances prevues a l'article 7 (processus de facturation)</li>
<li>Adresse une mise en demeure par email</li> <li>Adresse une mise en demeure par email</li>
<li>Suspendu les services concernes</li> <li>Suspendu les services concernes</li>
<li>Resilie le contrat conformement a l'article 14</li> <li>Resilie le contrat conformement a l'article 14</li>
</ul> </ul>
<p class="mt-2">Le client reste libre de regulariser sa situation a tout moment avant la transmission en recouvrement en contactant l'association a l'adresse <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a>.</p> <p class="mt-2">Le client reste libre de regulariser sa situation a tout moment avant la transmission en recouvrement en contactant la société a l'adresse <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a>.</p>
</section> </section>
<section> <section>
@@ -164,35 +169,35 @@
<li><strong>Alma</strong> : paiement en 2, 3 ou 4 fois selon les conditions d'Alma</li> <li><strong>Alma</strong> : paiement en 2, 3 ou 4 fois selon les conditions d'Alma</li>
</ul> </ul>
<p class="mt-2">Ces facilites de paiement sont <strong>soumises a la validation des services tiers concernes</strong> (PayPal, Klarna, Alma). L'acceptation ou le refus d'une demande de paiement fractionne releve exclusivement de la decision de ces prestataires.</p> <p class="mt-2">Ces facilites de paiement sont <strong>soumises a la validation des services tiers concernes</strong> (PayPal, Klarna, Alma). L'acceptation ou le refus d'une demande de paiement fractionne releve exclusivement de la decision de ces prestataires.</p>
<p class="mt-2"><strong>L'association E-Cosplay ne peut en aucun cas etre tenue responsable en cas de refus</strong> d'une facilite de paiement par l'un de ces services. Seuls les prestataires tiers determinent les conditions d'eligibilite et d'acceptation.</p> <p class="mt-2"><strong>La SARL SITECONSEIL ne peut en aucun cas etre tenue responsable en cas de refus</strong> d'une facilite de paiement par l'un de ces services. Seuls les prestataires tiers determinent les conditions d'eligibilite et d'acceptation.</p>
<p class="mt-2">En cas de refus, le client devra proceder au paiement integral par l'un des autres moyens de paiement acceptes (article 5).</p> <p class="mt-2">En cas de refus, le client devra proceder au paiement integral par l'un des autres moyens de paiement acceptes (article 5).</p>
<p class="mt-3"><strong>Echeancier de paiement en cas d'impaye :</strong></p> <p class="mt-3"><strong>Echeancier de paiement en cas d'impaye :</strong></p>
<p class="mt-2">En cas d'impaye, l'association pourra, a sa seule discretion et en fonction du profil et de l'historique du client, proposer un <strong>echeancier de paiement</strong>. Cet echeancier est soumis aux conditions suivantes :</p> <p class="mt-2">En cas d'impaye, la société pourra, a sa seule discretion et en fonction du profil et de l'historique du client, proposer un <strong>echeancier de paiement</strong>. Cet echeancier est soumis aux conditions suivantes :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Une majoration de <strong>5 % du montant total de la creance</strong> sera appliquee au titre des frais de gestion de l'echeancier</li> <li>Une majoration de <strong>5 % du montant total de la creance</strong> sera appliquee au titre des frais de gestion de l'echeancier</li>
<li>L'echeancier devra etre accepte et signe par le client</li> <li>L'echeancier devra etre accepte et signe par le client</li>
<li>En cas de non-respect d'une seule echeance, l'integralite du solde restant du devient immediatement exigible et la procedure de recouvrement (article 10) sera engagee</li> <li>En cas de non-respect d'une seule echeance, l'integralite du solde restant du devient immediatement exigible et la procedure de recouvrement (article 10) sera engagee</li>
</ul> </ul>
<p class="mt-2">L'octroi d'un echeancier n'est pas un droit. L'association se reserve le droit de refuser toute demande d'echeancier sans avoir a motiver sa decision.</p> <p class="mt-2">L'octroi d'un echeancier n'est pas un droit. La société se reserve le droit de refuser toute demande d'echeancier sans avoir a motiver sa decision.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 12 - Signature du contrat</h2> <h2 class="text-xl font-black uppercase mb-2">Article 12 - Signature du contrat</h2>
<p>La signature de tout contrat de service s'effectue <strong>electroniquement</strong> via la plateforme de signature <strong>DocuSeal</strong> (<a href="https://signature.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">signature.e-cosplay.fr</a>).</p> <p>La signature de tout contrat de service s'effectue <strong>electroniquement</strong> via la plateforme de signature <strong>DocuSeal</strong> (<a href="https://signature.siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">signature.siteconseil.fr</a>).</p>
<p class="mt-2">Une fois signe electroniquement par le client, le contrat est repute <strong>accepte</strong> par celui-ci. Toutefois, le contrat <strong>n'entre en vigueur qu'apres validation expresse de l'association E-Cosplay</strong>.</p> <p class="mt-2">Une fois signe electroniquement par le client, le contrat est repute <strong>accepte</strong> par celui-ci. Toutefois, le contrat <strong>n'entre en vigueur qu'apres validation expresse de la SARL SITECONSEIL</strong>.</p>
<p class="mt-2">La validation par l'association intervient dans un delai de <strong>2 a 3 jours ouvres</strong> apres la signature, apres les verifications prealables prevues a l'article 6 (validation des commandes et verification). Le client sera informe par email de la validation ou du refus de son contrat.</p> <p class="mt-2">La validation par la société intervient dans un delai de <strong>2 a 3 jours ouvres</strong> apres la signature, apres les verifications prealables prevues a l'article 6 (validation des commandes et verification). Le client sera informe par email de la validation ou du refus de son contrat.</p>
<p class="mt-2"><strong>Pendant ce delai de validation</strong>, le client conserve la possibilite d'annuler sa demande :</p> <p class="mt-2"><strong>Pendant ce delai de validation</strong>, le client conserve la possibilite d'annuler sa demande :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Directement depuis son Espace Client sur la Plateforme, si son compte est deja actif</li> <li>Directement depuis son Espace Client sur la Plateforme, si son compte est deja actif</li>
<li>Par simple email a l'adresse <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Par simple email a l'adresse <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
</ul> </ul>
<p class="mt-2">Une fois le contrat valide par l'association, l'annulation n'est plus possible et les conditions de resiliation prevues a l'article 14 s'appliquent.</p> <p class="mt-2">Une fois le contrat valide par la société, l'annulation n'est plus possible et les conditions de resiliation prevues a l'article 14 s'appliquent.</p>
<p class="mt-2">La signature electronique a la meme valeur juridique qu'une signature manuscrite, conformement au reglement europeen eIDAS et a l'article 1367 du Code civil francais. Un certificat de signature et un journal d'audit sont generes pour chaque contrat signe.</p> <p class="mt-2">La signature electronique a la meme valeur juridique qu'une signature manuscrite, conformement au reglement europeen eIDAS et a l'article 1367 du Code civil francais. Un certificat de signature et un journal d'audit sont generes pour chaque contrat signe.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 13 - Engagement</h2> <h2 class="text-xl font-black uppercase mb-2">Article 13 - Engagement</h2>
<p>Les prestations proposees par l'association E-Cosplay sont <strong>sans engagement de duree</strong>. Le client peut resilier a tout moment conformement aux conditions prevues a l'article 14.</p> <p>Les prestations proposees par la SARL SITECONSEIL sont <strong>sans engagement de duree</strong>. Le client peut resilier a tout moment conformement aux conditions prevues a l'article 14.</p>
<p class="mt-2">Toutefois, certains services necessitent un <strong>paiement anticipe</strong> selon une periodicite definie lors de la souscription :</p> <p class="mt-2">Toutefois, certains services necessitent un <strong>paiement anticipe</strong> selon une periodicite definie lors de la souscription :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Mensuel</strong> : paiement tous les 1 mois</li> <li><strong>Mensuel</strong> : paiement tous les 1 mois</li>
@@ -215,49 +220,49 @@
<li>En cas d'engagement en cours (article 11), la resiliation anticipee peut entrainer l'application des conditions prevues audit article</li> <li>En cas d'engagement en cours (article 11), la resiliation anticipee peut entrainer l'application des conditions prevues audit article</li>
</ul> </ul>
<p class="mt-2">A l'issue du preavis, une <strong>attestation de fin de contrat</strong> est delivree au client, confirmant la resiliation effective du service.</p> <p class="mt-2">A l'issue du preavis, une <strong>attestation de fin de contrat</strong> est delivree au client, confirmant la resiliation effective du service.</p>
<p class="mt-2"><strong>Resiliation a l'initiative de l'association :</strong></p> <p class="mt-2"><strong>Resiliation a l'initiative de la société :</strong></p>
<p class="mt-2">L'association se reserve le droit de resilier un contrat en cas de manquement grave du client a ses obligations (non-paiement, utilisation frauduleuse, violation des CGU ou CGV), apres mise en demeure restee sans effet pendant 15 jours.</p> <p class="mt-2">La société se reserve le droit de resilier un contrat en cas de manquement grave du client a ses obligations (non-paiement, utilisation frauduleuse, violation des CGU ou CGV), apres mise en demeure restee sans effet pendant 15 jours.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 15 - Cessation d'activite de l'association</h2> <h2 class="text-xl font-black uppercase mb-2">Article 15 - Cessation d'activite de la société</h2>
<p>En cas de dissolution ou de cessation d'activite de l'association E-Cosplay, les clients seront informes dans un delai minimum de <strong>3 mois</strong> avant la date effective de fermeture, afin de leur permettre de preparer le transfert de leurs services vers un autre prestataire.</p> <p>En cas de dissolution ou de cessation d'activite de la SARL SITECONSEIL, les clients seront informes dans un delai minimum de <strong>3 mois</strong> avant la date effective de fermeture, afin de leur permettre de preparer le transfert de leurs services vers un autre prestataire.</p>
<p class="mt-2">Pendant ce delai, l'association s'engage a :</p> <p class="mt-2">Pendant ce delai, la société s'engage a :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Maintenir les services actifs jusqu'a la date de fermeture effective</li> <li>Maintenir les services actifs jusqu'a la date de fermeture effective</li>
<li>Fournir au client les elements necessaires a la migration de ses donnees et services (export des donnees, transfert de nom de domaine, etc.)</li> <li>Fournir au client les elements necessaires a la migration de ses donnees et services (export des donnees, transfert de nom de domaine, etc.)</li>
<li>Ne facturer aucun service au-dela de la date de fermeture annoncee</li> <li>Ne facturer aucun service au-dela de la date de fermeture annoncee</li>
</ul> </ul>
<p class="mt-2">Les contrats en cours dont la date de fin est posterieure a la date de fermeture seront <strong>resilies de plein droit a la date effective de cessation d'activite</strong>. Aucune somme deja versee ne sera remboursable, sauf accord prealable ecrit de l'association.</p> <p class="mt-2">Les contrats en cours dont la date de fin est posterieure a la date de fermeture seront <strong>resilies de plein droit a la date effective de cessation d'activite</strong>. Aucune somme deja versee ne sera remboursable, sauf accord prealable ecrit de la société.</p>
<p class="mt-2">L'association <strong>n'est pas tenue de divulguer les raisons</strong> de la cessation d'activite, qu'elles soient liees a l'arret de l'association ou a l'arret d'une prestation specifique.</p> <p class="mt-2">La société <strong>n'est pas tenue de divulguer les raisons</strong> de la cessation d'activite, qu'elles soient liees a l'arret de la société ou a l'arret d'une prestation specifique.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 16 - Resolution amiable des litiges</h2> <h2 class="text-xl font-black uppercase mb-2">Article 16 - Resolution amiable des litiges</h2>
<p>En cas de litige relatif a l'execution des presentes CGV, le client peut <strong>a tout moment</strong> contacter l'association E-Cosplay afin de rechercher une resolution amiable par le dialogue.</p> <p>En cas de litige relatif a l'execution des presentes CGV, le client peut <strong>a tout moment</strong> contacter la SARL SITECONSEIL afin de rechercher une resolution amiable par le dialogue.</p>
<p class="mt-2">Le client peut adresser sa reclamation :</p> <p class="mt-2">Le client peut adresser sa reclamation :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Par email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Par email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
<li>Par courrier : Association E-Cosplay, 42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>Par courrier : SARL SITECONSEIL, 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
<li>Via le support client accessible depuis l'Espace Client sur la Plateforme</li> <li>Via le support client accessible depuis l'Espace Client sur la Plateforme</li>
</ul> </ul>
<p class="mt-2">L'association s'engage a accuser reception de la reclamation dans un delai de <strong>5 jours ouvres</strong> et a proposer une solution dans un delai raisonnable.</p> <p class="mt-2">La société s'engage a accuser reception de la reclamation dans un delai de <strong>5 jours ouvres</strong> et a proposer une solution dans un delai raisonnable.</p>
<p class="mt-2">Les parties s'engagent a privilegier le reglement amiable avant tout recours judiciaire.</p> <p class="mt-2">Les parties s'engagent a privilegier le reglement amiable avant tout recours judiciaire.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 17 - Tribunal competent</h2> <h2 class="text-xl font-black uppercase mb-2">Article 17 - Tribunal competent</h2>
<p>Les presentes CGV sont regies par le droit francais.</p> <p>Les presentes CGV sont regies par le droit francais.</p>
<p class="mt-2">En cas de litige non resolu par voie amiable (article 16) ou pour tout autre differend relatif a l'interpretation, l'execution ou la resiliation des presentes CGV, les <strong>tribunaux competents de Laon ou de Saint-Quentin (Aisne)</strong> seront seuls competents, quel que soit le lieu de domicile du client.</p> <p class="mt-2">En cas de litige non resolu par voie amiable (article 16) ou pour tout autre differend relatif a l'interpretation, l'execution ou la resiliation des presentes CGV, les <strong>tribunaux competents de Saint-Quentin (Aisne)</strong> seront seuls competents, quel que soit le lieu de domicile du client.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">Article 18 - Contact</h2> <h2 class="text-xl font-black uppercase mb-2">Article 18 - Contact</h2>
<p>Pour toute question relative aux presentes CGV :</p> <p>Pour toute question relative aux presentes CGV :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
<li>Telephone : 06 79 34 88 02</li> <li>Telephone : 06 79 34 88 02</li>
<li>Courrier : Association E-Cosplay, 42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>Courrier : SARL SITECONSEIL, 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
</ul> </ul>
</section> </section>

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Conformite - CRM Ecosplay{% endblock %} {% block title %}Conformite - CRM SITECONSEIL{% endblock %}
{% block description %}Informations de conformite reglementaire et transparence de l'association E-Cosplay.{% endblock %} {% block description %}Informations de conformite reglementaire et transparence de la SARL SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">
@@ -11,45 +11,42 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">1. Statut juridique</h2> <h2 class="text-xl font-black uppercase mb-2">1. Statut juridique</h2>
<p>L'association E-Cosplay est une <strong>association a but non lucratif</strong>, regie par la loi du 1er juillet 1901 et le decret du 16 aout 1901.</p> <p>La <strong>SARL SITECONSEIL</strong> est une societe a responsabilite limitee immatriculee au Registre du Commerce et des Societes.</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>RNA : W022006988</li> <li>Siret : 418 664 058</li>
<li>SIREN : 943121517</li> <li>TVA intracommunautaire : FR05 418 664 058</li>
<li>Siege social : 42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>Code NAF/APE : 62.01Z - Programmation informatique</li>
<li>President : Jovann Serreau — <a href="mailto:jovann@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">jovann@e-cosplay.fr</a></li> <li>Siege social : 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
</ul> </ul>
<p class="mt-2">L'association est declaree aupres de la Prefecture de l'Aisne et publiee au Journal Officiel des Associations et Fondations d'Entreprise (JOAFE).</p> <p class="mt-2 flex flex-wrap gap-2">
<p class="mt-2"><a href="/JOAFE_PDF_Unitaire_20250013_00029.pdf" class="inline-flex items-center gap-2 px-4 py-2 border-2 border-gray-900 bg-white font-black uppercase text-xs tracking-widest hover:bg-gray-900 hover:text-white transition-all" target="_blank" rel="noopener"> <a href="/avis-41866405800025-20260402172833.pdf" class="inline-flex items-center gap-2 px-4 py-2 border-2 border-gray-900 bg-white font-black uppercase text-xs tracking-widest hover:bg-gray-900 hover:text-white transition-all" target="_blank" rel="noopener">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg>
Consulter la publication au Journal Officiel (PDF)
</a>
<a href="/avis-94312151700016-20260401111834.pdf" class="inline-flex items-center gap-2 px-4 py-2 border-2 border-gray-900 bg-white font-black uppercase text-xs tracking-widest hover:bg-gray-900 hover:text-white transition-all" target="_blank" rel="noopener">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg>
Avis de situation INSEE (PDF) Avis de situation INSEE (PDF)
</a>
<a href="https://annuaire-entreprises.data.gouv.fr/entreprise/sarl-siteconseil-418664058" class="inline-flex items-center gap-2 px-4 py-2 border-2 border-gray-900 bg-white font-black uppercase text-xs tracking-widest hover:bg-gray-900 hover:text-white transition-all" target="_blank" rel="noopener">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/></svg>
Annuaire des Entreprises (data.gouv.fr)
</a></p> </a></p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">2. Respect de la legislation associative</h2> <h2 class="text-xl font-black uppercase mb-2">2. Respect de la legislation</h2>
<p>L'association E-Cosplay s'engage a respecter l'ensemble de la legislation applicable aux associations a but non lucratif, notamment :</p> <p>La SARL SITECONSEIL s'engage a respecter l'ensemble de la legislation applicable, notamment :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Loi du 1er juillet 1901</strong> : statuts deposes, assemblee generale annuelle, tenue d'une comptabilite reguliere</li> <li><strong>Code de commerce</strong> : immatriculation au RCS, tenue d'une comptabilite reguliere, conservation des documents comptables pendant 10 ans</li>
<li><strong>Code general des impots</strong> : respect des obligations fiscales applicables aux associations (TVA, impots commerciaux si applicable)</li> <li><strong>Code general des impots</strong> : respect des obligations fiscales (TVA, impot sur les societes)</li>
<li><strong>RGPD</strong> : protection des donnees personnelles, designation d'un DPO (DPO-167945)</li> <li><strong>RGPD</strong> : protection des donnees personnelles, designation d'un DPO</li>
<li><strong>Reglement eIDAS</strong> : conformite des signatures electroniques</li> <li><strong>Reglement eIDAS</strong> : conformite des signatures electroniques</li>
<li><strong>Code de commerce</strong> : conservation des documents comptables pendant 10 ans</li>
<li><strong>Code de la consommation</strong> : respect des droits des clients et des obligations d'information</li> <li><strong>Code de la consommation</strong> : respect des droits des clients et des obligations d'information</li>
</ul> </ul>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">3. Transparence</h2> <h2 class="text-xl font-black uppercase mb-2">3. Transparence</h2>
<p>L'association E-Cosplay s'engage a une <strong>transparence complete</strong> sur son fonctionnement :</p> <p>La SARL SITECONSEIL s'engage a une <strong>transparence complete</strong> sur son fonctionnement :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Statuts</strong> : les statuts de l'association sont accessibles sur demande a l'adresse <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li><strong>Statuts</strong> : les statuts de la société sont accessibles sur l'<a href="https://annuaire-entreprises.data.gouv.fr/entreprise/sarl-siteconseil-418664058" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">Annuaire des Entreprises</a></li>
<li><strong>Gouvernance</strong> : l'association est dirigee par un bureau compose d'un president, d'un tresorier et d'un secretaire, elus par l'assemblee generale</li> <li><strong>Comptabilite</strong> : une comptabilite reguliere est tenue conformement aux obligations legales</li>
<li><strong>Assemblee generale</strong> : une assemblee generale ordinaire est tenue chaque annee. Les decisions sont consignees dans un proces-verbal</li>
<li><strong>Comptabilite</strong> : une comptabilite reguliere est tenue conformement aux obligations legales. Les comptes annuels sont presentes et approuves en assemblee generale</li>
<li><strong>Tarifs</strong> : l'ensemble des tarifs est publie sur la page <a href="{{ path('app_legal_tarif') }}" class="text-indigo-800 underline hover:text-indigo-950">Tarifs</a></li> <li><strong>Tarifs</strong> : l'ensemble des tarifs est publie sur la page <a href="{{ path('app_legal_tarif') }}" class="text-indigo-800 underline hover:text-indigo-950">Tarifs</a></li>
<li><strong>CGV et CGU</strong> : les conditions generales sont publiees et accessibles a tout moment sur la plateforme</li> <li><strong>CGV et CGU</strong> : les conditions generales sont publiees et accessibles a tout moment sur la plateforme</li>
</ul> </ul>
@@ -57,9 +54,9 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">4. Confidentialite des donnees commerciales</h2> <h2 class="text-xl font-black uppercase mb-2">4. Confidentialite des donnees commerciales</h2>
<p>Bien que l'association s'engage a la transparence sur son fonctionnement, certaines informations restent <strong>strictement confidentielles</strong> pour proteger ses clients et prestataires :</p> <p>Bien que la société s'engage a la transparence sur son fonctionnement, certaines informations restent <strong>strictement confidentielles</strong> pour proteger ses clients et prestataires :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Le <strong>chiffre d'affaires</strong> genere par les activites commerciales de l'association n'est pas communique publiquement</li> <li>Le <strong>chiffre d'affaires</strong> genere par les activites commerciales de la société n'est pas communique publiquement</li>
<li>Les <strong>donnees financieres detaillees</strong> (revenus par service, marges, commissions) sont reservees aux membres du bureau</li> <li>Les <strong>donnees financieres detaillees</strong> (revenus par service, marges, commissions) sont reservees aux membres du bureau</li>
<li>Les <strong>informations relatives aux clients et prestataires</strong> (identite, contrats, volumes, conditions particulieres) sont protegees par une obligation de confidentialite</li> <li>Les <strong>informations relatives aux clients et prestataires</strong> (identite, contrats, volumes, conditions particulieres) sont protegees par une obligation de confidentialite</li>
<li>Les <strong>donnees personnelles</strong> sont traitees conformement au RGPD et a notre <a href="{{ path('app_legal_rgpd') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de confidentialite</a></li> <li>Les <strong>donnees personnelles</strong> sont traitees conformement au RGPD et a notre <a href="{{ path('app_legal_rgpd') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de confidentialite</a></li>
@@ -69,14 +66,14 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">5. Protection des donnees</h2> <h2 class="text-xl font-black uppercase mb-2">5. Protection des donnees</h2>
<p>L'association met en oeuvre des mesures techniques et organisationnelles pour garantir la securite et la confidentialite des donnees :</p> <p>La société met en oeuvre des mesures techniques et organisationnelles pour garantir la securite et la confidentialite des donnees :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Chiffrement des communications (TLS/HTTPS)</li> <li>Chiffrement des communications (TLS/HTTPS)</li>
<li>Hashage des mots de passe (bcrypt)</li> <li>Hashage des mots de passe (bcrypt)</li>
<li>Double authentification (2FA) pour tous les comptes</li> <li>Double authentification (2FA) pour tous les comptes</li>
<li>Signature electronique S/MIME des emails</li> <li>Signature electronique S/MIME des emails</li>
<li>Protection DDoS et WAF via Cloudflare</li> <li>Protection DDoS et WAF via Cloudflare</li>
<li>Hebergement des donnees dans l'Union Europeenne (Google Cloud Platform, region Europe)</li> <li>Hebergement des donnees en France (OVHcloud)</li>
<li>Sauvegardes regulieres et chiffrees</li> <li>Sauvegardes regulieres et chiffrees</li>
<li>Acces restreint aux donnees (principe du moindre privilege)</li> <li>Acces restreint aux donnees (principe du moindre privilege)</li>
</ul> </ul>
@@ -84,7 +81,7 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">6. Qualite et securite du code</h2> <h2 class="text-xl font-black uppercase mb-2">6. Qualite et securite du code</h2>
<p>La plateforme CRM Ecosplay est testee et deployee via un processus d'<strong>integration et de deploiement continus (CI/CD)</strong> automatise, garantissant la conformite, la proprete et la securite du code a chaque mise a jour :</p> <p>La plateforme CRM SITECONSEIL est testee et deployee via un processus d'<strong>integration et de deploiement continus (CI/CD)</strong> automatise, garantissant la conformite, la proprete et la securite du code a chaque mise a jour :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Pipeline CI/CD automatise</strong> : chaque modification du code est soumise a une serie de verifications automatiques avant mise en production</li> <li><strong>Pipeline CI/CD automatise</strong> : chaque modification du code est soumise a une serie de verifications automatiques avant mise en production</li>
<li><strong>Tests automatises</strong> : execution des tests unitaires et fonctionnels (PHPUnit) pour verifier le bon fonctionnement de l'application</li> <li><strong>Tests automatises</strong> : execution des tests unitaires et fonctionnels (PHPUnit) pour verifier le bon fonctionnement de l'application</li>
@@ -92,7 +89,7 @@
<li><strong>Analyse de securite SonarQube</strong> : chaque version est analysee par <strong>SonarQube</strong> pour detecter les vulnerabilites de securite, les bugs, les code smells et les duplications de code. Le resultat de l'analyse conditionne le deploiement en production</li> <li><strong>Analyse de securite SonarQube</strong> : chaque version est analysee par <strong>SonarQube</strong> pour detecter les vulnerabilites de securite, les bugs, les code smells et les duplications de code. Le resultat de l'analyse conditionne le deploiement en production</li>
<li><strong>Audit des dependances</strong> : verification automatique des vulnerabilites connues dans les dependances (Composer Audit, OWASP Dependency-Check)</li> <li><strong>Audit des dependances</strong> : verification automatique des vulnerabilites connues dans les dependances (Composer Audit, OWASP Dependency-Check)</li>
<li><strong>Analyse des Dockerfiles</strong> : verification des bonnes pratiques de securite des conteneurs via Hadolint</li> <li><strong>Analyse des Dockerfiles</strong> : verification des bonnes pratiques de securite des conteneurs via Hadolint</li>
<li><strong>Lint des templates et configurations</strong> : verification automatique de la syntaxe des templates Twig, des fichiers YAML et du container Symfony</li> <li><strong>Lint des templates et configurations</strong> : verification automatique de la syntaxe des templates, des fichiers de configuration et du container applicatif</li>
</ul> </ul>
<p class="mt-2">Ce processus garantit qu'aucune modification ne peut etre deployee en production sans avoir passe l'ensemble des controles de qualite et de securite.</p> <p class="mt-2">Ce processus garantit qu'aucune modification ne peut etre deployee en production sans avoir passe l'ensemble des controles de qualite et de securite.</p>
<div class="mt-4 flex flex-wrap gap-2"> <div class="mt-4 flex flex-wrap gap-2">
@@ -113,7 +110,7 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">7. Securite des paiements</h2> <h2 class="text-xl font-black uppercase mb-2">7. Securite des paiements</h2>
<p>L'association E-Cosplay met en oeuvre les mesures necessaires pour garantir la securite des transactions financieres :</p> <p>La SARL SITECONSEIL met en oeuvre les mesures necessaires pour garantir la securite des transactions financieres :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>HTTPS de bout en bout</strong> : l'ensemble des communications sont chiffrees via HTTPS, avec un certificat TLS fourni par <strong>Cloudflare</strong> en mode <strong>Full (Strict)</strong>, garantissant un chiffrement de bout en bout entre le navigateur de l'utilisateur, Cloudflare et le serveur d'origine</li> <li><strong>HTTPS de bout en bout</strong> : l'ensemble des communications sont chiffrees via HTTPS, avec un certificat TLS fourni par <strong>Cloudflare</strong> en mode <strong>Full (Strict)</strong>, garantissant un chiffrement de bout en bout entre le navigateur de l'utilisateur, Cloudflare et le serveur d'origine</li>
<li><strong>Paiements securises par Stripe</strong> : tous les paiements sont traites par <strong>Stripe Payments Europe, Ltd.</strong> (Dublin, Irlande), certifie <strong>PCI DSS Level 1</strong>, le plus haut niveau de certification de securite dans l'industrie des paiements. Aucune donnee bancaire n'est stockee sur nos serveurs</li> <li><strong>Paiements securises par Stripe</strong> : tous les paiements sont traites par <strong>Stripe Payments Europe, Ltd.</strong> (Dublin, Irlande), certifie <strong>PCI DSS Level 1</strong>, le plus haut niveau de certification de securite dans l'industrie des paiements. Aucune donnee bancaire n'est stockee sur nos serveurs</li>
@@ -127,19 +124,18 @@
<h2 class="text-xl font-black uppercase mb-2">8. Delegue a la Protection des Donnees</h2> <h2 class="text-xl font-black uppercase mb-2">8. Delegue a la Protection des Donnees</h2>
<p>Un Delegue a la Protection des Donnees (DPO) a ete designe conformement au RGPD :</p> <p>Un Delegue a la Protection des Donnees (DPO) a ete designe conformement au RGPD :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Identifiant : <strong>DPO-167945</strong></li> <li>Contact : <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a></li>
<li>Contact : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li>
</ul> </ul>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">9. Signalement et reclamations</h2> <h2 class="text-xl font-black uppercase mb-2">9. Signalement et reclamations</h2>
<p>Pour toute question relative a la conformite de l'association, ou pour signaler un manquement :</p> <p>Pour toute question relative a la conformite de la société, ou pour signaler un manquement :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
<li>Courrier : Association E-Cosplay, 42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>Courrier : SARL SITECONSEIL, 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
</ul> </ul>
<p class="mt-2">En cas de litige non resolu, vous pouvez saisir la CNIL pour les questions relatives aux donnees personnelles (<a href="https://www.cnil.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">www.cnil.fr</a>) ou les tribunaux competents de Laon (Aisne).</p> <p class="mt-2">En cas de litige non resolu, vous pouvez saisir la CNIL pour les questions relatives aux donnees personnelles (<a href="https://www.cnil.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">www.cnil.fr</a>) ou les tribunaux competents de Saint-Quentin (Aisne).</p>
</section> </section>
<p class="text-sm opacity-70 italic">Derniere mise a jour : 01/04/2026</p> <p class="text-sm opacity-70 italic">Derniere mise a jour : 01/04/2026</p>

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Politique de Cookies - CRM Ecosplay{% endblock %} {% block title %}Politique de Cookies - CRM SITECONSEIL{% endblock %}
{% block description %}Politique de cookies du site CRM Ecosplay.{% endblock %} {% block description %}Politique de cookies du site CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">
@@ -16,7 +16,7 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">2. Cookies utilises sur la Plateforme</h2> <h2 class="text-xl font-black uppercase mb-2">2. Cookies utilises sur la Plateforme</h2>
<p>La plateforme CRM Ecosplay utilise exclusivement des <strong>cookies strictement necessaires</strong> au fonctionnement du site :</p> <p>La plateforme CRM SITECONSEIL utilise exclusivement des <strong>cookies strictement necessaires</strong> au fonctionnement du site :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Cookie de session</strong> : permet de maintenir votre connexion et votre navigation sur la Plateforme. Il est supprime a la fermeture du navigateur.</li> <li><strong>Cookie de session</strong> : permet de maintenir votre connexion et votre navigation sur la Plateforme. Il est supprime a la fermeture du navigateur.</li>
<li><strong>Cookie de securite (CSRF)</strong> : protege contre les attaques de type Cross-Site Request Forgery lors de la soumission de formulaires.</li> <li><strong>Cookie de securite (CSRF)</strong> : protege contre les attaques de type Cross-Site Request Forgery lors de la soumission de formulaires.</li>
@@ -70,14 +70,13 @@
<h2 class="text-xl font-black uppercase mb-2">7. Delegue a la Protection des Donnees</h2> <h2 class="text-xl font-black uppercase mb-2">7. Delegue a la Protection des Donnees</h2>
<p>Pour toute question relative aux cookies ou a vos donnees personnelles :</p> <p>Pour toute question relative aux cookies ou a vos donnees personnelles :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>DPO : <strong>DPO-167945</strong></li> <li>Email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
<li>Email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li>
</ul> </ul>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">8. Droit applicable</h2> <h2 class="text-xl font-black uppercase mb-2">8. Droit applicable</h2>
<p>Tout litige en relation avec l'utilisation des cookies sur la Plateforme est soumis au droit francais. Il est fait attribution exclusive de juridiction aux tribunaux competents de Laon.</p> <p>Tout litige en relation avec l'utilisation des cookies sur la Plateforme est soumis au droit francais. Il est fait attribution exclusive de juridiction aux tribunaux competents de Saint-Quentin.</p>
</section> </section>
<p class="text-sm opacity-70 italic">Derniere mise a jour : 30/03/2026</p> <p class="text-sm opacity-70 italic">Derniere mise a jour : 30/03/2026</p>

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Hebergement - CRM Ecosplay{% endblock %} {% block title %}Hebergement - CRM SITECONSEIL{% endblock %}
{% block description %}Informations d'hebergement du site CRM Ecosplay.{% endblock %} {% block description %}Informations d'hebergement du site CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">
@@ -11,13 +11,12 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">1. Hebergeur principal</h2> <h2 class="text-xl font-black uppercase mb-2">1. Hebergeur principal</h2>
<p>Le site <strong>crm.e-cosplay.fr</strong> est heberge par :</p> <p>Le site <strong>crm.siteconseil.fr</strong> est heberge par :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Google Cloud Platform (GCP)</strong></li> <li><strong>OVHcloud</strong></li>
<li>Google Ireland Limited</li> <li>SAS OVH, 2 rue Kellermann, 59100 Roubaix, France</li>
<li>Gordon House, Barrow Street, Dublin 4, Irlande</li> <li>Datacenters : Roubaix, Gravelines, Strasbourg, Paris</li>
<li>Region : europe-west1 (Belgique)</li> <li>Site : ovhcloud.com</li>
<li>Site : cloud.google.com</li>
</ul> </ul>
</section> </section>
@@ -65,16 +64,15 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">6. Localisation des donnees</h2> <h2 class="text-xl font-black uppercase mb-2">6. Localisation des donnees</h2>
<p>L'ensemble des donnees de la Plateforme (base de donnees, fichiers, sauvegardes) est heberge dans l'<strong>Union Europeenne</strong>.</p> <p>L'ensemble des donnees de la Plateforme (base de donnees, fichiers, sauvegardes) est heberge en <strong>France</strong> chez OVHcloud.</p>
<p class="mt-2">Les sous-traitants americains (Cloudflare, Stripe) operent sous le cadre du <strong>Data Privacy Framework (DPF)</strong> et/ou des <strong>Clauses Contractuelles Types (CCT)</strong> pour les transferts de donnees hors UE.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">7. Contact</h2> <h2 class="text-xl font-black uppercase mb-2">7. Contact</h2>
<p>Pour toute question relative a l'hebergement : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></p> <p>Pour toute question relative a l'hebergement : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></p>
</section> </section>
<p class="text-sm opacity-70 italic">Derniere mise a jour : 30/03/2026</p> <p class="text-sm opacity-70 italic">Derniere mise a jour : 02/04/2026</p>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Mentions Legales - CRM Ecosplay{% endblock %} {% block title %}Mentions Legales - CRM SITECONSEIL{% endblock %}
{% block description %}Mentions legales du site CRM Ecosplay.{% endblock %} {% block description %}Mentions legales du site CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">
@@ -11,16 +11,16 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">1. Editeur du site</h2> <h2 class="text-xl font-black uppercase mb-2">1. Editeur du site</h2>
<p>Le site <strong>crm.e-cosplay.fr</strong> (ci-apres "la Plateforme") est edite par :</p> <p>Le site <strong>crm.siteconseil.fr</strong> (ci-apres "la Plateforme") est edite par :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Association E-Cosplay</strong></li> <li><strong>SARL SITECONSEIL</strong></li>
<li>RNA : W022006988</li> <li>Siret : 418 664 058</li>
<li>SIREN : 943121517</li> <li>TVA intracommunautaire : FR05 418 664 058</li>
<li>Siege social : 42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>Code NAF/APE : 62.01Z - Programmation informatique</li>
<li>Email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Siege social : 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
<li>Email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
<li>Telephone : 06 79 34 88 02</li> <li>Telephone : 06 79 34 88 02</li>
<li>Site web : <a href="https://www.e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">www.e-cosplay.fr</a></li> <li>Site web : <a href="https://www.siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950" target="_blank" rel="noopener">www.siteconseil.fr</a></li>
<li>Directeur de la publication : Serreau Jovann</li>
</ul> </ul>
</section> </section>
@@ -28,53 +28,50 @@
<h2 class="text-xl font-black uppercase mb-2">2. Hebergement</h2> <h2 class="text-xl font-black uppercase mb-2">2. Hebergement</h2>
<p>Le site est heberge par :</p> <p>Le site est heberge par :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Google Cloud Platform</strong></li> <li><strong>OVHcloud</strong></li>
<li>Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irlande</li> <li>SAS OVH, 2 rue Kellermann, 59100 Roubaix, France</li>
<li>Datacenters : Roubaix, Gravelines, Strasbourg, Paris</li>
</ul> </ul>
<p class="mt-2">Le nom de domaine est gere via <strong>Cloudflare, Inc.</strong>, 101 Townsend St, San Francisco, CA 94107, Etats-Unis.</p> <p class="mt-2">Le nom de domaine et la securite (CDN, WAF, DDoS) sont geres via <strong>Cloudflare, Inc.</strong>, 101 Townsend St, San Francisco, CA 94107, Etats-Unis.</p>
<p class="mt-2">Les paiements en ligne sont securises par <strong>Stripe</strong> (Stripe Payments Europe, Ltd., 1 Grand Canal Street Lower, Dublin 2, Irlande). La Plateforme ne stocke aucune donnee bancaire.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">3. Nature de la Plateforme</h2> <h2 class="text-xl font-black uppercase mb-2">3. Nature de la Plateforme</h2>
<p>La Plateforme CRM Ecosplay est un <strong>outil de gestion interne</strong> de l'association E-Cosplay, destine a la gestion de la relation client et prestataire.</p> <p>La Plateforme CRM SITECONSEIL est un <strong>outil de gestion interne</strong> de la SARL SITECONSEIL, destine a la gestion de la relation client et prestataire.</p>
</section>
<section>
<h2 class="text-xl font-black uppercase mb-2">4. Propriete intellectuelle</h2>
<p>L'ensemble du contenu de la Plateforme (textes, graphismes, logos, icones, code source) est la propriete exclusive de la SARL SITECONSEIL, sauf mention contraire. Toute reproduction, meme partielle, est interdite sans autorisation ecrite prealable.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">4. Paiement</h2> <h2 class="text-xl font-black uppercase mb-2">5. Donnees personnelles</h2>
<p>Les paiements en ligne sont securises par <strong>Stripe</strong> (Stripe Payments Europe, Ltd., 1 Grand Canal Street Lower, Dublin 2, Irlande). La Plateforme ne stocke aucune donnee bancaire.</p> <p>Conformement au Reglement General sur la Protection des Donnees (RGPD), la SARL SITECONSEIL s'engage a proteger la confidentialite des donnees personnelles collectees. Pour toute information ou exercice de vos droits Informatique et Libertes sur les traitements de donnees personnelles, vous pouvez contacter notre Delegue a la Protection des Donnees (DPO).</p>
</section>
<section>
<h2 class="text-xl font-black uppercase mb-2">5. Propriete intellectuelle</h2>
<p>L'ensemble du contenu de la Plateforme (textes, graphismes, logos, icones, code source) est la propriete exclusive de l'association E-Cosplay, sauf mention contraire. Toute reproduction, meme partielle, est interdite sans autorisation ecrite prealable.</p>
</section>
<section>
<h2 class="text-xl font-black uppercase mb-2">6. Donnees personnelles</h2>
<p>Conformement au Reglement General sur la Protection des Donnees (RGPD), l'association E-Cosplay s'engage a proteger la confidentialite des donnees personnelles collectees. Pour toute information ou exercice de vos droits Informatique et Libertes sur les traitements de donnees personnelles, vous pouvez contacter notre Delegue a la Protection des Donnees (DPO).</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Identifiant DPO : <strong>DPO-167945</strong></li> <li>Contact DPO : <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a></li>
<li>Contact DPO : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li>
</ul> </ul>
<p class="mt-2">Pour plus d'informations, consultez notre <a href="{{ path('app_legal_rgpd') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de confidentialite</a>.</p> <p class="mt-2">Pour plus d'informations, consultez notre <a href="{{ path('app_legal_rgpd') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de confidentialite</a>.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">7. Cookies</h2> <h2 class="text-xl font-black uppercase mb-2">6. Cookies</h2>
<p>La Plateforme utilise des cookies strictement necessaires a son fonctionnement. Pour plus de details, consultez notre <a href="{{ path('app_legal_cookie') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de cookies</a>.</p> <p>La Plateforme utilise des cookies strictement necessaires a son fonctionnement. Pour plus de details, consultez notre <a href="{{ path('app_legal_cookie') }}" class="text-indigo-800 underline hover:text-indigo-950">Politique de cookies</a>.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">8. Droit applicable et litiges</h2> <h2 class="text-xl font-black uppercase mb-2">7. Droit applicable et litiges</h2>
<p>Les presentes mentions legales sont regies par le droit francais. En cas de litige, les tribunaux competents de Laon (Aisne) seront seuls competents.</p> <p>Les presentes mentions legales sont regies par le droit francais. En cas de litige, les tribunaux competents de Saint-Quentin (Aisne) seront seuls competents.</p>
</section> </section>
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">9. Contact</h2> <h2 class="text-xl font-black uppercase mb-2">8. Contact</h2>
<p>Pour toute question relative aux presentes mentions legales, vous pouvez nous contacter a l'adresse : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a>.</p> <p>Pour toute question relative aux presentes mentions legales, vous pouvez nous contacter a l'adresse : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a>.</p>
</section> </section>
<p class="text-sm opacity-70 italic">Derniere mise a jour : 30/03/2026</p> <p class="text-sm opacity-70 italic">Derniere mise a jour : 02/04/2026</p>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %} {% extends 'legal/_layout.html.twig' %}
{% block title %}Politique de Confidentialite - CRM Ecosplay{% endblock %} {% block title %}Politique de Confidentialite - CRM SITECONSEIL{% endblock %}
{% block description %}Politique de protection des donnees personnelles du CRM Ecosplay.{% endblock %} {% block description %}Politique de protection des donnees personnelles du CRM SITECONSEIL.{% endblock %}
{% block body %} {% block body %}
<div class="page-container"> <div class="page-container">
@@ -15,10 +15,10 @@
<h2 class="text-xl font-black uppercase mb-2">1. Responsable du traitement</h2> <h2 class="text-xl font-black uppercase mb-2">1. Responsable du traitement</h2>
<p>Le responsable du traitement des donnees personnelles est :</p> <p>Le responsable du traitement des donnees personnelles est :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>Association E-Cosplay</strong></li> <li><strong>SARL SITECONSEIL</strong></li>
<li>SIREN : 943121517 / RNA : W022006988</li> <li>Siret : 418 664 058</li>
<li>42 rue de Saint-Quentin, 02800 Beautor, France</li> <li>27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
<li>Email : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li> <li>Email : <a href="mailto:contact@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a></li>
</ul> </ul>
</section> </section>
@@ -26,8 +26,7 @@
<h2 class="text-xl font-black uppercase mb-2">2. Delegue a la Protection des Donnees (DPO)</h2> <h2 class="text-xl font-black uppercase mb-2">2. Delegue a la Protection des Donnees (DPO)</h2>
<p>Conformement au RGPD, un Delegue a la Protection des Donnees a ete designe :</p> <p>Conformement au RGPD, un Delegue a la Protection des Donnees a ete designe :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Identifiant DPO : <strong>DPO-167945</strong></li> <li>Contact : <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a></li>
<li>Contact : <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a></li>
</ul> </ul>
</section> </section>
@@ -82,7 +81,7 @@
<h2 class="text-xl font-black uppercase mb-2">6. Destinataires des donnees</h2> <h2 class="text-xl font-black uppercase mb-2">6. Destinataires des donnees</h2>
<p>Vos donnees personnelles sont accessibles par :</p> <p>Vos donnees personnelles sont accessibles par :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li><strong>L'association E-Cosplay</strong> : administration de la Plateforme</li> <li><strong>La SARL SITECONSEIL</strong> : administration de la Plateforme</li>
<li><strong>Les organisateurs d'evenements</strong> : uniquement les donnees necessaires a la gestion de leurs evenements (nom, email de l'acheteur)</li> <li><strong>Les organisateurs d'evenements</strong> : uniquement les donnees necessaires a la gestion de leurs evenements (nom, email de l'acheteur)</li>
<li><strong>Stripe</strong> : traitement des paiements (Stripe Payments Europe, Ltd., Dublin, Irlande)</li> <li><strong>Stripe</strong> : traitement des paiements (Stripe Payments Europe, Ltd., Dublin, Irlande)</li>
<li><strong>Amazon Web Services (SES)</strong> : envoi des emails transactionnels (region eu-west-3, Irlande)</li> <li><strong>Amazon Web Services (SES)</strong> : envoi des emails transactionnels (region eu-west-3, Irlande)</li>
@@ -113,7 +112,7 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">9. Securite des donnees</h2> <h2 class="text-xl font-black uppercase mb-2">9. Securite des donnees</h2>
<p>L'association E-Cosplay met en oeuvre des mesures techniques et organisationnelles appropriees pour garantir la securite des donnees :</p> <p>La SARL SITECONSEIL met en oeuvre des mesures techniques et organisationnelles appropriees pour garantir la securite des donnees :</p>
<ul class="list-disc pl-6 mt-2"> <ul class="list-disc pl-6 mt-2">
<li>Chiffrement des communications (TLS/HTTPS)</li> <li>Chiffrement des communications (TLS/HTTPS)</li>
<li>Hashage des mots de passe (bcrypt)</li> <li>Hashage des mots de passe (bcrypt)</li>
@@ -136,7 +135,7 @@
<li><strong>Droit d'opposition</strong> : vous opposer au traitement de vos donnees pour des motifs legitimes</li> <li><strong>Droit d'opposition</strong> : vous opposer au traitement de vos donnees pour des motifs legitimes</li>
<li><strong>Droit de retrait du consentement</strong> : retirer votre consentement a tout moment (newsletter, etc.)</li> <li><strong>Droit de retrait du consentement</strong> : retirer votre consentement a tout moment (newsletter, etc.)</li>
</ul> </ul>
<p class="mt-2">Pour exercer vos droits, contactez le DPO a l'adresse <a href="mailto:contact@e-cosplay.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@e-cosplay.fr</a> en precisant votre identite. Une reponse vous sera apportee dans un delai maximum de 30 jours.</p> <p class="mt-2">Pour exercer vos droits, contactez le DPO a l'adresse <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a> en precisant votre identite. Une reponse vous sera apportee dans un delai maximum de 30 jours.</p>
</section> </section>
<section> <section>
@@ -150,7 +149,7 @@
<section> <section>
<h2 class="text-xl font-black uppercase mb-2">12. Droit applicable</h2> <h2 class="text-xl font-black uppercase mb-2">12. Droit applicable</h2>
<p>Tout litige en relation avec le traitement des donnees personnelles est soumis au droit francais. Il est fait attribution exclusive de juridiction aux tribunaux competents de Laon.</p> <p>Tout litige en relation avec le traitement des donnees personnelles est soumis au droit francais. Il est fait attribution exclusive de juridiction aux tribunaux competents de Saint-Quentin.</p>
</section> </section>
<p class="text-sm opacity-70 italic mb-8">Derniere mise a jour : 30/03/2026</p> <p class="text-sm opacity-70 italic mb-8">Derniere mise a jour : 30/03/2026</p>

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
<html lang="fr"> <html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Contrat Revendeur - E-Cosplay</title> <title>Contrat Revendeur - SITECONSEIL</title>
<style> <style>
@page { margin: 0; size: A4; } @page { margin: 0; size: A4; }
body { font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #111827; margin: 0; padding: 0; line-height: 1.6; } body { font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #111827; margin: 0; padding: 0; line-height: 1.6; }
@@ -33,8 +33,8 @@
</head> </head>
<body> <body>
<div class="banner"> <div class="banner">
{% if logo %}<img src="{{ logo }}" alt="E-Cosplay">{% endif %} {% if logo %}<img src="{{ logo }}" alt="SITECONSEIL">{% endif %}
<div class="banner-title">Association E-Cosplay — Contrat Revendeur</div> <div class="banner-title">SARL SITECONSEIL — Contrat Revendeur</div>
</div> </div>
<div class="container"> <div class="container">
<h1>Contrat de Partenariat Revendeur</h1> <h1>Contrat de Partenariat Revendeur</h1>
@@ -46,10 +46,10 @@
<div class="parties-row"> <div class="parties-row">
<div class="parties-cell left"> <div class="parties-cell left">
<span class="label">Le Prestataire</span> <span class="label">Le Prestataire</span>
<strong>Association E-Cosplay</strong><br> <strong>SARL SITECONSEIL</strong><br>
RNA : W022006988 — SIREN : 943121517<br> RNA : W022006988 — SIREN : 943121517<br>
42 rue de Saint-Quentin, 02800 Beautor, France<br> 27 rue Le Sérurier, 02100 Saint-Quentin, France<br>
contact@e-cosplay.fr contact@siteconseil.fr
</div> </div>
<div class="parties-cell"> <div class="parties-cell">
<span class="label">Le Revendeur</span> <span class="label">Le Revendeur</span>
@@ -65,7 +65,7 @@
<div class="section"> <div class="section">
<h2>Article 1 — Objet</h2> <h2>Article 1 — Objet</h2>
<p>Le present contrat definit les conditions dans lesquelles le Revendeur apporte des clients a l'Association E-Cosplay (ci-apres "l'Association"). Le role du Revendeur consiste exclusivement a prospecter et orienter des clients potentiels vers l'Association.</p> <p>Le present contrat definit les conditions dans lesquelles le Revendeur apporte des clients a l'SARL SITECONSEIL (ci-apres "l'Association"). Le role du Revendeur consiste exclusivement a prospecter et orienter des clients potentiels vers l'Association.</p>
<p>L'Association prend en charge l'integralite de la relation client, de la souscription a la resiliation, incluant la realisation des prestations, la facturation, le support technique et le service apres-vente. Le Revendeur n'intervient a aucun moment dans l'execution des services.</p> <p>L'Association prend en charge l'integralite de la relation client, de la souscription a la resiliation, incluant la realisation des prestations, la facturation, le support technique et le service apres-vente. Le Revendeur n'intervient a aucun moment dans l'execution des services.</p>
</div> </div>
@@ -127,7 +127,7 @@
<li>La commission est due uniquement apres paiement integral de la facture par le client</li> <li>La commission est due uniquement apres paiement integral de la facture par le client</li>
<li>En cas de non-paiement, d'impaye ou de remboursement, aucune commission n'est due</li> <li>En cas de non-paiement, d'impaye ou de remboursement, aucune commission n'est due</li>
<li>Les commissions sont versees mensuellement, le mois suivant l'encaissement, par l'un des moyens suivants : virement bancaire, Stripe Connect ou especes (dans la limite legale de 1 000 € par transaction conformement a l'article L112-6 du Code monetaire et financier)</li> <li>Les commissions sont versees mensuellement, le mois suivant l'encaissement, par l'un des moyens suivants : virement bancaire, Stripe Connect ou especes (dans la limite legale de 1 000 € par transaction conformement a l'article L112-6 du Code monetaire et financier)</li>
<li>Le detail des taux de commission en vigueur est consultable a l'adresse : https://crm.e-cosplay.fr/legal/tarif</li> <li>Le detail des taux de commission en vigueur est consultable a l'adresse : https://crm.siteconseil.fr/legal/tarif</li>
<li>Les taux de commission sont susceptibles d'evolution avec un preavis d'un mois</li> <li>Les taux de commission sont susceptibles d'evolution avec un preavis d'un mois</li>
</ul> </ul>
</div> </div>
@@ -140,18 +140,18 @@
<div class="section"> <div class="section">
<h2>Article 8 — Responsabilite</h2> <h2>Article 8 — Responsabilite</h2>
<p>Le Revendeur est seul responsable de la relation commerciale avec ses clients finaux. L'association ne pourra en aucun cas etre tenue responsable des engagements pris par le Revendeur aupres de ses clients, au-dela des prestations prevues par les CGV.</p> <p>Le Revendeur est seul responsable de la relation commerciale avec ses clients finaux. La société ne pourra en aucun cas etre tenue responsable des engagements pris par le Revendeur aupres de ses clients, au-dela des prestations prevues par les CGV.</p>
<p>Le Revendeur s'engage a indemniser l'association de tout prejudice, frais ou condamnation resultant d'un manquement a ses obligations contractuelles ou d'une reclamation d'un client final imputable a son activite.</p> <p>Le Revendeur s'engage a indemniser la société de tout prejudice, frais ou condamnation resultant d'un manquement a ses obligations contractuelles ou d'une reclamation d'un client final imputable a son activite.</p>
</div> </div>
<div class="section"> <div class="section">
<h2>Article 9 — Propriete intellectuelle</h2> <h2>Article 9 — Propriete intellectuelle</h2>
<p>Le Revendeur n'acquiert aucun droit de propriete intellectuelle sur les services, logiciels, marques ou contenus de l'association. Il est autorise a utiliser la marque E-Cosplay uniquement dans le cadre de la commercialisation des services prevus au present contrat, et dans le respect des directives de l'association.</p> <p>Le Revendeur n'acquiert aucun droit de propriete intellectuelle sur les services, logiciels, marques ou contenus de la société. Il est autorise a utiliser la marque SITECONSEIL uniquement dans le cadre de la commercialisation des services prevus au present contrat, et dans le respect des directives de la société.</p>
</div> </div>
<div class="section"> <div class="section">
<h2>Article 10 — Non-concurrence</h2> <h2>Article 10 — Non-concurrence</h2>
<p>Pendant la duree du contrat et pendant une periode de 6 mois apres sa cessation, le Revendeur s'engage a ne pas developper, commercialiser ou promouvoir un service directement concurrent des services de l'association, sauf accord ecrit prealable.</p> <p>Pendant la duree du contrat et pendant une periode de 6 mois apres sa cessation, le Revendeur s'engage a ne pas developper, commercialiser ou promouvoir un service directement concurrent des services de la société, sauf accord ecrit prealable.</p>
</div> </div>
<div class="section"> <div class="section">
@@ -171,7 +171,7 @@
<div class="section"> <div class="section">
<h2>Article 14 — Assurance</h2> <h2>Article 14 — Assurance</h2>
<p>Le Revendeur declare etre titulaire d'une assurance responsabilite civile professionnelle couvrant son activite. Il s'engage a maintenir cette assurance pendant toute la duree du contrat et a en fournir une attestation sur demande de l'association.</p> <p>Le Revendeur declare etre titulaire d'une assurance responsabilite civile professionnelle couvrant son activite. Il s'engage a maintenir cette assurance pendant toute la duree du contrat et a en fournir une attestation sur demande de la société.</p>
</div> </div>
<div class="section"> <div class="section">
@@ -181,17 +181,17 @@
<div class="section"> <div class="section">
<h2>Article 16 — Droit applicable et litiges</h2> <h2>Article 16 — Droit applicable et litiges</h2>
<p>Le present contrat est regi par le droit francais. En cas de litige, les parties s'efforceront de trouver une solution amiable dans un delai de 30 jours. A defaut d'accord amiable, les tribunaux competents de Laon (Aisne) seront seuls competents, quel que soit le lieu de domicile du Revendeur.</p> <p>Le present contrat est regi par le droit francais. En cas de litige, les parties s'efforceront de trouver une solution amiable dans un delai de 30 jours. A defaut d'accord amiable, les tribunaux competents de Saint-Quentin (Aisne) seront seuls competents, quel que soit le lieu de domicile du Revendeur.</p>
</div> </div>
<p style="margin-top: 14px; font-weight: 700;">Fait en deux exemplaires, a Beautor, le {{ date|date('d/m/Y') }}.</p> <p style="margin-top: 14px; font-weight: 700;">Fait en deux exemplaires, a Saint-Quentin, le {{ date|date('d/m/Y') }}.</p>
<div class="signatures"> <div class="signatures">
<div class="signatures-row"> <div class="signatures-row">
<div class="signatures-cell"> <div class="signatures-cell">
<span class="sig-label">Pour l'Association E-Cosplay</span> <span class="sig-label">Pour l'SARL SITECONSEIL</span>
<div class="sig-box"> <div class="sig-box">
<div style="font-size: 8px; color: #000;">{% verbatim %}{{Sign;type=signature;width=150;height=50;role=E-Cosplay}}{% endverbatim %}</div> <div style="font-size: 8px; color: #000;">{% verbatim %}{{Sign;type=signature;width=150;height=50;role=SITECONSEIL}}{% endverbatim %}</div>
</div> </div>
<span class="sig-date">Date et signature</span> <span class="sig-date">Date et signature</span>
</div> </div>
@@ -206,9 +206,9 @@
</div> </div>
<div class="footer"> <div class="footer">
Association E-Cosplay — RNA W022006988 — SIREN 943121517<br> SARL SITECONSEIL — RNA W022006988 — SIREN 943121517<br>
42 rue de Saint-Quentin, 02800 Beautor, France — contact@e-cosplay.fr — 06 79 34 88 02<br> 27 rue Le Sérurier, 02100 Saint-Quentin, France — contact@siteconseil.fr — 06 79 34 88 02<br>
<a href="https://www.e-cosplay.fr" style="color: #999;">www.e-cosplay.fr</a> — DPO : DPO-167945 <a href="https://www.siteconseil.fr" style="color: #999;">www.siteconseil.fr</a>
</div> </div>
</div> </div>
</body> </body>

View File

@@ -41,8 +41,8 @@
</head> </head>
<body> <body>
<div class="banner"> <div class="banner">
{% if logo %}<img src="{{ logo }}" alt="CRM Ecosplay">{% endif %} {% if logo %}<img src="{{ logo }}" alt="CRM SITECONSEIL">{% endif %}
<div class="banner-title">Association E-Cosplay</div> <div class="banner-title">SARL SITECONSEIL</div>
</div> </div>
<div class="container"> <div class="container">
<span class="doc-type">Droit d'acces</span> <span class="doc-type">Droit d'acces</span>
@@ -87,16 +87,16 @@
</div> </div>
<div class="hmac">HMAC-SHA256 : {{ attestation.hmac }}</div> <div class="hmac">HMAC-SHA256 : {{ attestation.hmac }}</div>
<div style="margin-top: 16px;"> <div style="margin-top: 16px;">
<p class="dpo"><strong>DPO (DPO-167945)</strong></p> <p class="dpo"><strong>DPO</strong></p>
<span class="contact-box">contact@e-cosplay.fr</span> <span class="contact-box">contact@siteconseil.fr</span>
</div> </div>
<div style="margin-top: 12px; display: inline-block; border: 2px solid #111827; padding: 8px 12px; width: 180px; height: 80px;"> <div style="margin-top: 12px; display: inline-block; border: 2px solid #111827; padding: 8px 12px; width: 180px; height: 80px;">
<div style="font-size: 1px; color: #fff;">{% verbatim %}{{Sign;type=signature;width=150;height=50}}{% endverbatim %}</div> <div style="font-size: 1px; color: #fff;">{% verbatim %}{{Sign;type=signature;width=150;height=50}}{% endverbatim %}</div>
</div> </div>
<div style="margin-top: 16px; padding-top: 8px; border-top: 1px solid #ddd; font-size: 7px; color: #999; line-height: 1.6;"> <div style="margin-top: 16px; padding-top: 8px; border-top: 1px solid #ddd; font-size: 7px; color: #999; line-height: 1.6;">
Association E-Cosplay &mdash; RNA W022006988 &mdash; SIREN 943121517<br> SARL SITECONSEIL &mdash; RNA W022006988 &mdash; SIREN 943121517<br>
42 rue de Saint-Quentin, 02800 Beautor, France &mdash; contact@e-cosplay.fr &mdash; 06 79 34 88 02<br> 27 rue Le Sérurier, 02100 Saint-Quentin, France &mdash; contact@siteconseil.fr &mdash; 06 79 34 88 02<br>
<a href="https://www.e-cosplay.fr" style="color: #999;">www.e-cosplay.fr</a> &mdash; DPO : DPO-167945 <a href="https://www.siteconseil.fr" style="color: #999;">www.siteconseil.fr</a>
</div> </div>
</div> </div>
</body> </body>

Some files were not shown because too many files have changed in this diff Show More