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_FEE_RATE=0.015
STRIPE_FEE_FIXED=25
ADMIN_EMAIL=contact@e-cosplay.fr
ADMIN_EMAIL=contact@siteconseil.fr
###> SonarQube ###
SONARQUBE_URL=https://sn.esy-web.dev
SONARQUBE_BADGE_TOKEN=
SONARQUBE_PROJECT_KEY=crm-ecosplay
SONARQUBE_BADGE_TOKEN=sqb_bf06d32640147db064c99d2e893ca63a072630d7
SONARQUBE_PROJECT_KEY=crm_siteconseil
###< SonarQube ###
###> SSO E-Cosplay (Keycloak OIDC) ###
OAUTH_KEYCLOAK_CLIENT_ID=e-ticket
OAUTH_KEYCLOAK_CLIENT_SECRET=changeme
###> SSO SITECONSEIL (Keycloak OIDC) ###
OAUTH_KEYCLOAK_CLIENT_ID=crm_siteconseil
OAUTH_KEYCLOAK_CLIENT_SECRET=kh1WBbnEzcEZVriXmU7IaxizChReHmIx
OAUTH_KEYCLOAK_URL=https://auth.esy-web.dev
OAUTH_KEYCLOAK_REALM=e-cosplay
###< SSO E-Cosplay (Keycloak OIDC) ###
OAUTH_KEYCLOAK_REALM=master
###< SSO SITECONSEIL (Keycloak OIDC) ###
###> Keycloak Admin Service Account ###
KEYCLOAK_ADMIN_CLIENT_ID=crm-ecosplay-admin
KEYCLOAK_ADMIN_CLIENT_ID=crm-siteconseil-admin
KEYCLOAK_ADMIN_CLIENT_SECRET=
###< 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.
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 :
@@ -176,9 +176,9 @@
env:
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
POSTGRES_DB: crm_ecosplay
POSTGRES_DB: crm_siteconseil
options: >-
--health-cmd "pg_isready -U app -d crm_ecosplay"
--health-cmd "pg_isready -U app -d crm_siteconseil"
--health-interval 5s
--health-timeout 5s
--health-retries 5
@@ -195,7 +195,7 @@
MEILI_MASTER_KEY: test
MEILI_ENV: development
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"
MAILER_DSN: "null://null"
MEILISEARCH_URL: "http://meilisearch:7700"
@@ -310,7 +310,7 @@
- name: OWASP Dependency-Check
uses: dependency-check/Dependency-Check_Action@main
with:
project: 'crm-ecosplay'
project: 'crm-siteconseil'
path: '.'
format: 'JSON,HTML'
args: >

View File

@@ -17,4 +17,4 @@ jobs:
ssh-keyscan 34.90.187.4 >> ~/.ssh/known_hosts
- 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:
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
POSTGRES_DB: crm_ecosplay
POSTGRES_DB: crm_siteconseil
options: >-
--health-cmd "pg_isready -U app -d crm_ecosplay"
--health-cmd "pg_isready -U app -d crm_siteconseil"
--health-interval 5s
--health-timeout 5s
--health-retries 5
@@ -31,7 +31,7 @@ jobs:
MEILI_MASTER_KEY: test
MEILI_ENV: development
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"
MAILER_DSN: "null://null"
MEILISEARCH_URL: "http://meilisearch:7700"
@@ -95,7 +95,7 @@ jobs:
- name: OWASP Dependency-Check
uses: dependency-check/Dependency-Check_Action@main
with:
project: 'crm-ecosplay'
project: 'crm-siteconseil'
path: '.'
format: 'JSON,HTML'
args: >

View File

@@ -49,8 +49,8 @@ install_prod: ## Install les dependances et build les assets pour la prod
## —— Tests ————————————————————————————————————————
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_ecosplay -c "CREATE DATABASE crm_ecosplay_test"
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_siteconseil -c "CREATE DATABASE crm_siteconseil_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
@@ -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
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_ecosplay -c "CREATE DATABASE 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_siteconseil -c "CREATE DATABASE crm_siteconseil_test"
$(MAKE) test_db_schema
test_db_setup: ## Setup complet de la base de test (cree si besoin + schema)

View File

@@ -1,14 +1,14 @@
#!/bin/bash
# CRM Ecosplay database backup script
# CRM SITECONSEIL database backup script
# 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)
FILENAME="crm_ecosplay_${DATE}.sql.gz"
FILENAME="crm_siteconseil_${DATE}.sql.gz"
KEEP_DAYS=1
# 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
if [ -f "${BACKUP_DIR}/${FILENAME}" ] && [ -s "${BACKUP_DIR}/${FILENAME}" ]; then
@@ -20,7 +20,7 @@ fi
# Backup uploads
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
echo "[$(date)] Uploads Backup OK: ${UPLOADS_FILENAME} ($(du -h "${BACKUP_DIR}/${UPLOADS_FILENAME}" | cut -f1))"
@@ -29,6 +29,6 @@ else
fi
# 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
echo "[$(date)] Cleaned backups older than ${KEEP_DAYS} days"

View File

@@ -1,17 +1,17 @@
crm.e-cosplay.fr {
crm.siteconseil.fr {
tls {
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/*
handle @static {
root * /var/www/crm-crm-ecosplay/public
root * /var/www/crm-crm-siteconseil/public
file_server
}
@maintenance file /var/www/crm-ecosplay/public/.update
@maintenance file /var/www/crm-siteconseil/public/.update
handle @maintenance {
root * /var/www/crm-ecosplay/public
root * /var/www/crm-siteconseil/public
rewrite * /maintenance.html
file_server {
status 503
@@ -19,7 +19,7 @@ crm.e-cosplay.fr {
}
handle {
root * /var/www/crm-ecosplay/public
root * /var/www/crm-siteconseil/public
php_fastcgi localhost:4568 localhost:4569 {
root /app/public
lb_policy round_robin
@@ -35,7 +35,7 @@ crm.e-cosplay.fr {
handle_errors {
@unavailable expression `{err.status_code} in [502, 503]`
handle @unavailable {
root * /var/www/crm-ecosplay/public
root * /var/www/crm-siteconseil/public
rewrite * /unavailable.html
file_server
}
@@ -48,6 +48,6 @@ crm.e-cosplay.fr {
}
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 ---
- name: Deploy crm-ecosplay to production
- name: Deploy crm-siteconseil to production
hosts: production
become: true
vars_files:
@@ -10,7 +10,7 @@
- name: Enable maintenance mode
command: make maintenance_on
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Get Docker socket GID
stat:
@@ -29,14 +29,14 @@
- name: Deploy .env.local
template:
src: env.local.j2
dest: /var/www/crm-ecosplay/.env.local
dest: /var/www/crm-siteconseil/.env.local
owner: bot
group: bot
mode: "0600"
- name: Ensure cert directory exists
file:
path: /var/www/crm-ecosplay/config/cert
path: /var/www/crm-siteconseil/config/cert
state: directory
owner: bot
group: bot
@@ -45,7 +45,7 @@
- name: Deploy S/MIME private key
copy:
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
group: bot
mode: "0600"
@@ -53,13 +53,13 @@
- name: Pull latest code
command: git pull origin master
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
become_user: bot
- name: Deploy PgBouncer config
template:
src: pgbouncer.ini.j2
dest: /var/www/crm-ecosplay/docker/pgsql/pgbouncer.ini
dest: /var/www/crm-siteconseil/docker/pgsql/pgbouncer.ini
owner: bot
group: bot
mode: "0644"
@@ -67,7 +67,7 @@
- name: Deploy PgBouncer userlist
template:
src: userlist.txt.j2
dest: /var/www/crm-ecosplay/docker/pgsql/userlist.txt
dest: /var/www/crm-siteconseil/docker/pgsql/userlist.txt
owner: bot
group: bot
mode: "0644"
@@ -75,7 +75,7 @@
- name: Deploy docker-compose-prod.yml
template:
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
group: bot
mode: "0600"
@@ -83,79 +83,79 @@
- name: Build Docker images
command: make build_prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Pull Docker images
command: make pull_prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Stop production containers
command: make stop_prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Start production containers
command: make start_prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Install PHP dependencies
command: composer install --no-dev --optimize-autoloader
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
become_user: bot
- name: Install JS dependencies
command: bun install
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
become_user: bot
- name: Build assets
command: bun run build
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
become_user: bot
- name: Wait for database to be ready
shell: |
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
done
exit 1
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Clear Symfony cache before migration
command: docker compose -f docker-compose-prod.yml exec -T php php bin/console cache:clear --env=prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- 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
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Run migrations
command: make migrate_prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Clear cache after migration
command: make clear_prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Compile PWA assets
command: make pwa_prod
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
- name: Ensure uploads directories exist with correct permissions
file:
path: "/var/www/crm-ecosplay/public/uploads/{{ item }}"
path: "/var/www/crm-siteconseil/public/uploads/{{ item }}"
state: directory
owner: "1000"
group: "1000"
@@ -166,7 +166,7 @@
- name: Ensure var/payouts directory exists
file:
path: /var/www/crm-ecosplay/var/payouts
path: /var/www/crm-siteconseil/var/payouts
state: directory
owner: "1000"
group: "1000"
@@ -183,7 +183,7 @@
- name: Deploy Caddy config
template:
src: caddy.j2
dest: /etc/caddy/sites/crm-ecosplay.conf
dest: /etc/caddy/sites/crm-siteconseil.conf
owner: root
group: root
mode: "0644"
@@ -191,7 +191,7 @@
- name: Create backup directory
file:
path: /var/backups/crm-ecosplay
path: /var/backups/crm-siteconseil
state: directory
owner: bot
group: bot
@@ -200,75 +200,75 @@
- name: Deploy backup script
template:
src: backup.sh.j2
dest: /var/backups/crm-ecosplay/backup.sh
dest: /var/backups/crm-siteconseil/backup.sh
owner: bot
group: bot
mode: "0750"
- name: Configure backup cron (every 30 minutes)
cron:
name: "crm-ecosplay database backup"
name: "crm-siteconseil database backup"
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
- name: Configure expire pending orders cron (every 5 minutes)
cron:
name: "crm-ecosplay expire pending orders"
name: "crm-siteconseil expire pending orders"
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
- name: Configure messenger monitor cron (every hour)
cron:
name: "crm-ecosplay messenger monitor"
name: "crm-siteconseil messenger monitor"
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
- name: Configure Meilisearch consistency check cron (daily at 3am)
cron:
name: "crm-ecosplay meilisearch consistency"
name: "crm-siteconseil meilisearch consistency"
minute: "0"
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
- name: Configure Stripe sync cron (every 6 hours)
cron:
name: "crm-ecosplay stripe sync"
name: "crm-siteconseil stripe sync"
minute: "0"
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
- name: Configure infra snapshot cron (every 5 minutes)
cron:
name: "crm-ecosplay infra snapshot"
name: "crm-siteconseil infra snapshot"
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
- name: Configure attestations cleanup cron (daily at 4am)
cron:
name: "crm-ecosplay attestations clean"
name: "crm-siteconseil attestations clean"
minute: "0"
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
- name: Configure services health check cron (every 15 minutes)
cron:
name: "crm-ecosplay services check"
name: "crm-siteconseil services check"
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
post_tasks:
- name: Disable maintenance mode
command: make maintenance_off
args:
chdir: /var/www/crm-ecosplay
chdir: /var/www/crm-siteconseil
handlers:
- name: Reload Caddy

View File

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

View File

@@ -1,14 +1,14 @@
APP_ENV=prod
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
SESSION_HANDLER_DSN=redis://:{{ redis_password }}@redis:6379/1
REDIS_CACHE_DSN=redis://:{{ redis_password }}@redis:6379/2
MAILER_DSN={{ mailer_dsn }}
DEFAULT_URI=https://ticket.e-cosplay.fr
DEFAULT_URI=https://ticket.siteconseil.fr
VITE_LOAD=1
REAL_MAIL=1
OUTSIDE_URL=https://ticket.e-cosplay.fr
OUTSIDE_URL=https://ticket.siteconseil.fr
STRIPE_PK={{ stripe_pk }}
STRIPE_SK={{ stripe_sk }}
STRIPE_WEBHOOK_SECRET={{ stripe_webhook_secret }}
@@ -19,13 +19,13 @@ MEILISEARCH_URL=http://meilisearch:7700
MEILISEARCH_API_KEY={{ meilisearch_api_key }}
SONARQUBE_URL=https://sn.esy-web.dev
SONARQUBE_BADGE_TOKEN={{ sonarqube_badge_token }}
SONARQUBE_PROJECT_KEY=crm-ecosplay
OAUTH_KEYCLOAK_CLIENT_ID=crm_ecosplay
OAUTH_KEYCLOAK_CLIENT_SECRET=QiksEpHqDCHFPMM9CWb3RHfag31VJfIV
SONARQUBE_PROJECT_KEY=crm_siteconseil
OAUTH_KEYCLOAK_CLIENT_ID=crm_siteconseil
OAUTH_KEYCLOAK_CLIENT_SECRET=kh1WBbnEzcEZVriXmU7IaxizChReHmIx
OAUTH_KEYCLOAK_URL=https://auth.esy-web.dev
OAUTH_KEYCLOAK_REALM=e-cosplay
OAUTH_KEYCLOAK_REALM=master
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 }}
DOCUSEAL_URL=https://signature.esy-web.dev
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
[production:vars]
deploy_path=/var/www/crm.ecosplay/
deploy_path=/var/www/crm.siteconseil/

View File

@@ -1,6 +1,6 @@
[program:crm-ecosplay-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
directory=/var/www/crm-ecosplay
[program:crm-siteconseil-messenger]
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-siteconseil
user=bot
numprocs=2
process_name=%(program_name)s_%(process_num)02d
@@ -8,5 +8,5 @@ autostart=true
autorestart=true
startsecs=0
startretries=10
stdout_logfile=/var/log/supervisor/crm-ecosplay-messenger-%(process_num)02d.log
stderr_logfile=/var/log/supervisor/crm-ecosplay-messenger-%(process_num)02d-error.log
stdout_logfile=/var/log/supervisor/crm-siteconseil-messenger-%(process_num)02d.log
stderr_logfile=/var/log/supervisor/crm-siteconseil-messenger-%(process_num)02d-error.log

View File

@@ -1,6 +1,6 @@
[databases]
crm-ecosplay = host=db-master port=5432 dbname=crm-ecosplay
crm-ecosplay_readonly = host=db-slave port=5432 dbname=crm-ecosplay
crm-siteconseil = host=db-master port=5432 dbname=crm-siteconseil
crm-siteconseil_readonly = host=db-slave port=5432 dbname=crm-siteconseil
[pgbouncer]
listen_addr = 0.0.0.0
@@ -17,5 +17,5 @@ server_lifetime = 3600
server_idle_timeout = 600
log_connections = 0
log_disconnections = 0
admin_users = crm-ecosplay
stats_users = crm-ecosplay
admin_users = crm-siteconseil
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: |
Bag Attributes
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>
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC60+PtobUKQsjH

View File

@@ -138,4 +138,24 @@ document.addEventListener('DOMContentLoaded', () => {
setupSearch('search-customers', 'search-results', '/admin/clients/search', '/admin/clients/');
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'
filters:
strip: ~
thumbnail: { size: [ 48, 48 ], mode: inset }
avatar:
quality: 80
format: 'webp'
@@ -46,4 +45,3 @@ liip_imagine:
format: 'webp'
filters:
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.
# 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")
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.
# Assurez-vous que votre serveur Redis est accessible.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
set -e
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');
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');

View File

@@ -1,12 +1,12 @@
#!/bin/bash
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..."
sleep 2
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
chmod 600 /tmp/.pgpass

View File

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

View File

@@ -1,5 +1,5 @@
{
"name": "e-cosplay",
"name": "siteconseil",
"private": true,
"version": "0.0.0",
"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.projectName=CRM Ecosplay
sonar.projectKey=crm_siteconseil
sonar.projectName=CRM SITECONSEIL
sonar.sources=src,assets,templates
sonar.tests=tests

View File

@@ -43,18 +43,15 @@ class StripeSyncCommand extends Command
return Command::SUCCESS;
}
private function syncPayments(SymfonyStyle $io): void
protected function syncPayments(SymfonyStyle $io): void
{
$io->section('Paiements');
try {
$charges = \Stripe\Charge::all([
'limit' => 100,
'created' => ['gte' => strtotime('-1 day')],
]);
$charges = $this->fetchCharges();
$count = 0;
foreach ($charges->data as $charge) {
foreach ($charges as $charge) {
$io->info('Paiement ID: '.$charge->id);
++$count;
}
@@ -65,18 +62,15 @@ class StripeSyncCommand extends Command
}
}
private function syncRefunds(SymfonyStyle $io): void
protected function syncRefunds(SymfonyStyle $io): void
{
$io->section('Remboursements');
try {
$refunds = \Stripe\Refund::all([
'limit' => 100,
'created' => ['gte' => strtotime('-1 day')],
]);
$refunds = $this->fetchRefunds();
$count = 0;
foreach ($refunds->data as $refund) {
foreach ($refunds as $refund) {
$io->info('Remboursement ID: '.$refund->id);
++$count;
}
@@ -87,18 +81,15 @@ class StripeSyncCommand extends Command
}
}
private function syncPayouts(SymfonyStyle $io): void
protected function syncPayouts(SymfonyStyle $io): void
{
$io->section('Versements');
try {
$payouts = \Stripe\Payout::all([
'limit' => 100,
'created' => ['gte' => strtotime('-7 days')],
]);
$payouts = $this->fetchPayouts();
$count = 0;
foreach ($payouts->data as $payout) {
foreach ($payouts as $payout) {
$io->info('Versement ID: '.$payout->id);
++$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');
try {
$accounts = \Stripe\Account::all(['limit' => 100]);
$accounts = $this->fetchConnectAccounts();
$count = 0;
foreach ($accounts->data as $account) {
foreach ($accounts as $account) {
$status = $account->charges_enabled ? 'actif' : 'inactif';
$payoutsEnabled = $account->payouts_enabled ? 'oui' : 'non';
@@ -138,4 +129,40 @@ class StripeSyncCommand extends Command
$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 {
$mailer->sendEmail(
$email,
'CRM Ecosplay - Votre compte a ete cree',
'CRM SITECONSEIL - Votre compte a ete cree',
$twig->render('emails/membre_created.html.twig', [
'firstName' => $firstName,
'lastName' => $lastName,
@@ -192,7 +192,7 @@ class MembresController extends AbstractController
$mailer->sendEmail(
$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', [
'firstName' => $user->getFirstName(),
'lastName' => $user->getLastName(),

View File

@@ -86,7 +86,7 @@ class RevendeursController extends AbstractController
$mailer->sendEmail(
$email,
'CRM Ecosplay - Bienvenue dans l\'espace revendeur',
'CRM SITECONSEIL - Bienvenue dans l\'espace revendeur',
$twig->render('emails/revendeur_created.html.twig', [
'firstName' => $firstName,
'lastName' => $lastName,
@@ -180,7 +180,7 @@ class RevendeursController extends AbstractController
Environment $twig,
#[Autowire('%kernel.project_dir%')] string $projectDir,
): 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)) : '';
$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
{
$email = (new Email())
->from('security-notify@e-cosplay.fr')
->from('security-notify@siteconseil.fr')
->to($this->getParameter('admin_email'))
->subject('Alerte Securite : Violation CSP detectee')
->priority(Email::PRIORITY_HIGH)

View File

@@ -13,7 +13,7 @@ use Symfony\Component\Routing\Attribute\Route;
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(
string $messageId,
EmailTrackingRepository $repository,
@@ -27,7 +27,7 @@ class EmailTrackingController extends AbstractController
$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('Cache-Control', 'no-store');

View File

@@ -71,7 +71,7 @@ class ForgotPasswordController extends AbstractController
if (null !== $user) {
$mailer->sendEmail(
$email,
'CRM Ecosplay - Code de reinitialisation',
'CRM SITECONSEIL - Code de reinitialisation',
$twig->render('emails/forgot_password_code.html.twig', ['code' => $code]),
null,
null,
@@ -106,7 +106,7 @@ class ForgotPasswordController extends AbstractController
$mailer->sendEmail(
$sessionEmail,
'CRM Ecosplay - Mot de passe modifie',
'CRM SITECONSEIL - Mot de passe modifie',
$twig->render('emails/password_changed.html.twig'),
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.');
}
} 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);
@@ -149,7 +149,7 @@ class LegalController extends AbstractController
$this->addFlash('success', 'Aucune donnee trouvee pour cette adresse IP.');
}
} 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);

View File

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

View File

@@ -85,7 +85,7 @@ class KeycloakAuthenticator extends OAuth2Authenticator implements Authenticatio
{
$session = $request->getSession();
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'));

View File

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

View File

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

View File

@@ -31,7 +31,7 @@ class MailerService
public function getAdminFrom(): string
{
return 'Association E-Cosplay <'.$this->adminEmail.'>';
return 'SARL SITECONSEIL <'.$this->adminEmail.'>';
}
public function send(Email $email): void
@@ -45,10 +45,12 @@ class MailerService
$certificate = $this->projectDir.'/config/cert/smime/certificate.pem';
$privateKey = $this->projectDir.'/config/cert/smime/private-key.pem';
// @codeCoverageIgnoreStart
if (file_exists($certificate) && file_exists($privateKey)) {
$signer = new SMimeSigner($certificate, $privateKey, $this->smimePassphrase);
$email = $signer->sign($email);
}
// @codeCoverageIgnoreEnd
$this->bus->dispatch(new SendEmailMessage($email));
}
@@ -89,7 +91,7 @@ class MailerService
}
$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', [
'messageId' => $messageId,
@@ -100,7 +102,7 @@ class MailerService
], UrlGeneratorInterface::ABSOLUTE_URL);
$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);
$email->html($html);
@@ -131,7 +133,7 @@ class MailerService
$email->getHeaders()->addTextHeader(
'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');
}

View File

@@ -13,9 +13,6 @@ use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Twig\Environment;
/**
* @codeCoverageIgnore RGPD data access/deletion with PDF generation
*/
class RgpdService
{
public function __construct(
@@ -127,7 +124,9 @@ class RgpdService
'no_data' => $this->generateNoDataPdf($ip, $attestation),
'access' => $this->generateAccessPdf($data, $ip, $attestation),
'deletion' => $this->generateDeletionPdf($ip, $attestation),
// @codeCoverageIgnoreStart
default => throw new \InvalidArgumentException('Invalid attestation type'),
// @codeCoverageIgnoreEnd
};
$attestation->setPdfFileUnsigned($pdfPath);
@@ -140,7 +139,7 @@ class RgpdService
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)) : '';
}

View File

@@ -24,7 +24,7 @@
<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">
<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>
</a>
</div>

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %}
{% block title %}Nouveau client - Administration - CRM Ecosplay{% endblock %}
{% block title %}Nouveau client - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %}
<div class="page-container">
@@ -108,7 +108,7 @@
</div>
<div>
<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)]">
</div>
</div>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{% extends 'admin/_layout.html.twig' %}
{% block title %}Nouveau revendeur - Administration - CRM Ecosplay{% endblock %}
{% block title %}Nouveau revendeur - Administration - CRM SITECONSEIL{% endblock %}
{% block admin_content %}
<div class="page-container">
@@ -77,7 +77,7 @@
</div>
<div>
<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)]">
</div>
</div>

View File

@@ -1,6 +1,6 @@
{% 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 %}
<div class="page-container">
@@ -63,7 +63,7 @@
</div>
<div>
<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)]">
</div>
</div>

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{% 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 %}
<div class="page-container">

View File

@@ -1,6 +1,6 @@
{% 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 %}
<div class="page-container">
@@ -99,7 +99,7 @@
<input type="hidden" name="category_id" value="{{ category.id }}">
<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>
<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">
</div>
<div class="flex-1 min-w-[120px]">

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{% 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 body %}

View File

@@ -3,31 +3,29 @@
<head>
<meta charset="UTF-8">
<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() }}
{% 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 %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "CRM Ecosplay",
"url": "https://crm.e-cosplay.fr",
"logo": "https://crm.e-cosplay.fr/logo.jpg",
"email": "contact@e-cosplay.fr",
"name": "CRM SITECONSEIL",
"url": "https://crm.siteconseil.fr",
"logo": "https://crm.siteconseil.fr/logo_facture.png",
"email": "contact@siteconseil.fr",
"telephone": "+33679348802",
"address": {
"@type": "PostalAddress",
"streetAddress": "42 rue de Saint-Quentin",
"addressLocality": "Beautor",
"postalCode": "02800",
"streetAddress": "27 rue Le Sérurier",
"addressLocality": "Saint-Quentin",
"postalCode": "02100",
"addressCountry": "FR"
},
"sameAs": [
"https://www.facebook.com/assocationecosplay",
"https://www.e-cosplay.fr",
"https://www.ticket.e-cosplay.fr"
"https://www.siteconseil.fr"
]
}
</script>
@@ -35,8 +33,8 @@
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "CRM Ecosplay",
"url": "https://crm.e-cosplay.fr"
"name": "CRM SITECONSEIL",
"url": "https://crm.siteconseil.fr"
}
</script>
{% 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:url" content="{{ app.request.uri }}">
<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 %}
<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 %}
<meta name="twitter:card" content="summary_large_image">
<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">
<div class="flex justify-between items-center h-20">
<div class="flex-shrink-0">
<a href="{{ path('app_home') }}" class="flex items-center group" aria-label="CRM Ecosplay - 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">
<a href="{{ path('app_home') }}" class="flex items-center group" aria-label="CRM SITECONSEIL - Retour a l'accueil">
<img class="h-10 md:h-14 w-auto" src="{{ 'logo_facture.png' | imagine_filter('navbar_logo') }}" alt="CRM SITECONSEIL" loading="eager">
</a>
</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-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>
<p class="font-bold text-lg leading-snug">42 RUE DE SAINT-QUENTIN<br>02800 BEAUTOR, 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">
contact@e-cosplay.fr
<p class="font-bold text-lg leading-snug">27 RUE LE SÉRURIER<br>02100 SAINT-QUENTIN, FRANCE</p>
<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@siteconseil.fr
</a>
</div>
<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">
CRM Ecosplay est la plateforme de relation entre
E-Cosplay, ses clients et ses revendeurs.
CRM SITECONSEIL est la plateforme de relation entre
SITECONSEIL, ses clients et ses revendeurs.
Retrouvez vos factures, commandes et devis directement en un seul endroit.
</p>
</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>
<p class="font-black uppercase text-sm">&copy; {{ "now"|date("Y") }} CRM ECOSPLAY.</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-[10px] font-bold opacity-70">RNA N&deg;W022006988</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 la <a href="https://www.siteconseil.fr" class="underline hover:no-underline">SARL SITECONSEIL</a></p>
<p class="text-[10px] font-bold opacity-70">Siret : 418 664 058</p>
</div>
<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>

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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>
<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;">
@@ -12,13 +12,13 @@
</p>
<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;">
<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 style="padding: 32px;">
{% block content %}{% endblock %}
</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;">
&copy; {{ "now"|date("Y") }} Association E-Cosplay
&copy; {{ "now"|date("Y") }} SARL SITECONSEIL
</div>
</div>
</div>

View File

@@ -5,7 +5,7 @@
{% block content %}
<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;">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;">
<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 %}
<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;">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;">
<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>

View File

@@ -1,10 +1,10 @@
{% extends 'email/base.html.twig' %}
{% block title %}Votre compte CRM Ecosplay{% endblock %}
{% block title %}Votre compte CRM SITECONSEIL{% endblock %}
{% block content %}
<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;">
<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>
</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 %}

View File

@@ -5,7 +5,7 @@
{% block content %}
<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;">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;">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;">Cordialement,<br><strong>Association E-Cosplay</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@siteconseil.fr" style="color: #4338ca;">contact@siteconseil.fr</a>.</p>
<p style="font-size: 14px; line-height: 1.6; margin: 0;">Cordialement,<br><strong>SARL SITECONSEIL</strong></p>
{% endblock %}

View File

@@ -1,10 +1,10 @@
{% extends 'email/base.html.twig' %}
{% block title %}Bienvenue chez E-Cosplay - Espace Revendeur{% endblock %}
{% block title %}Bienvenue chez SITECONSEIL - Espace Revendeur{% endblock %}
{% block content %}
<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;">
<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>
<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 %}

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>
<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;">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;">Cordialement,<br><strong>Association E-Cosplay</strong></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>SARL SITECONSEIL</strong></p>
{% endblock %}

View File

@@ -5,7 +5,7 @@
{% block content %}
<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;">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="padding: 8px 12px; background: #f9fafb; border-left: 3px solid #fabf04;">
<strong>Reference</strong> {{ attestation.reference }}
@@ -18,5 +18,5 @@
</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;">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 %}

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;">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;">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 %}

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;">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;">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;">Cordialement,<br><strong>Association E-Cosplay</strong></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>SARL SITECONSEIL</strong></p>
{% endblock %}

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
{% extends 'base.html.twig' %}
{% block title %}Redirection externe - CRM Ecosplay{% endblock %}
{% block title %}Redirection externe - CRM SITECONSEIL{% endblock %}
{% block header %}
<header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900">
<div class="flex justify-center items-center h-20">
<a href="{{ path('app_home') }}" aria-label="CRM Ecosplay - Accueil">
<img class="h-12 md:h-16 w-auto" src="{{ 'logo.jpg' | imagine_filter('logo') }}" alt="CRM Ecosplay" loading="eager">
<a href="{{ path('app_home') }}" aria-label="CRM SITECONSEIL - Accueil">
<img class="h-12 md:h-16 w-auto" src="{{ 'logo_facture.png' | imagine_filter('logo') }}" alt="CRM SITECONSEIL" loading="eager">
</a>
</div>
</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>
</div>
<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 %}
<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' %}
{% block title %}CRM Ecosplay{% endblock %}
{% block description %}Connectez-vous au CRM Ecosplay pour acceder a votre espace client ou revendeur.{% endblock %}
{% block title %}CRM SITECONSEIL{% endblock %}
{% block description %}Connectez-vous au CRM SITECONSEIL pour acceder a votre espace client ou revendeur.{% endblock %}
{% block header %}
<header class="sticky top-0 z-50 bg-white border-b-4 border-gray-900">
<div class="flex justify-center items-center h-20">
<a href="{{ path('app_home') }}" aria-label="CRM Ecosplay - Accueil">
<img class="h-12 md:h-16 w-auto" src="{{ 'logo.jpg' | imagine_filter('logo') }}" alt="CRM Ecosplay" loading="eager">
<a href="{{ path('app_home') }}" aria-label="CRM SITECONSEIL - Accueil">
<img class="h-12 md:h-16 w-auto" src="{{ 'logo_facture.png' | imagine_filter('logo') }}" alt="CRM SITECONSEIL" loading="eager">
</a>
</div>
</header>
@@ -25,7 +25,7 @@
<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="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>
</div>
<div class="p-8">
@@ -57,7 +57,7 @@
<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">
<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>
</div>
</div>

View File

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

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %}
{% block title %}Conditions Generales d'Utilisation - CRM Ecosplay{% endblock %}
{% block description %}Conditions generales d'utilisation du CRM Ecosplay.{% endblock %}
{% block title %}Conditions Generales d'Utilisation - CRM SITECONSEIL{% endblock %}
{% block description %}Conditions generales d'utilisation du CRM SITECONSEIL.{% endblock %}
{% block body %}
<div class="page-container">
@@ -11,18 +11,18 @@
<section>
<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 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>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 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>
<h2 class="text-xl font-black uppercase mb-2">Article 2 - Editeur</h2>
<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>Siege social : 42 rue de Saint-Quentin, 02800 Beautor, 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>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>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>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>
</section>
@@ -48,38 +48,38 @@
<li>Tableaux de bord et statistiques de vente</li>
</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>
<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">
<li><strong>Clients</strong> : personnes physiques ou morales beneficiant des produits et services de l'association</li>
<li><strong>Prestataires (revendeurs)</strong> : personnes physiques ou morales commercialisant les 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 la société</li>
</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>
<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">
<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>Sur demande validee par un membre de l'association</li>
<li>Sur demande validee par un membre de la société</li>
</ul>
<p class="mt-2">L'authentification pour les clients et prestataires s'effectue via :</p>
<ul class="list-disc pl-6 mt-2">
<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>
</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>
<ul class="list-disc pl-6 mt-2">
<li>Ne pas communiquer ses identifiants de connexion a des tiers</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>
<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>
@@ -109,7 +109,7 @@
<p class="mt-3"><strong>Pour les prestataires (revendeurs) :</strong></p>
<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 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>
</section>
@@ -128,18 +128,18 @@
<section>
<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 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>
<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>
</section>
<section>
<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>
<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>
@@ -160,17 +160,17 @@
<section>
<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 class="mt-2">L'association ne saurait etre tenue responsable des interruptions de service et de leurs consequences eventuelles.</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">La société ne saurait etre tenue responsable des interruptions de service et de leurs consequences eventuelles.</p>
</section>
<section>
<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">
<li>L'association 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>L'association ne saurait etre tenue responsable des dommages indirects resultant de l'utilisation de la Plateforme</li>
<li>La société met en oeuvre les moyens necessaires pour assurer la securite et la confidentialite des donnees</li>
<li>La société ne garantit pas l'absence totale d'erreurs ou de failles de securite</li>
<li>La société ne saurait etre tenue responsable des dommages indirects resultant de l'utilisation de la Plateforme</li>
</ul>
<p class="mt-3"><strong>Responsabilite de l'utilisateur :</strong></p>
<ul class="list-disc pl-6 mt-2">
@@ -187,22 +187,22 @@
<section>
<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>
</section>
<section>
<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 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">
<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>Une <strong>attestation de conformite</strong> pourra etre demandee prealablement a la cloture</li>
</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-3"><strong>A l'initiative de l'association :</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-3"><strong>A l'initiative de la société :</strong></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">
<li>Manquement aux presentes CGU</li>
<li>Non-paiement des sommes dues apres mise en demeure restee infructueuse</li>
@@ -215,16 +215,16 @@
<section>
<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 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>
<h2 class="text-xl font-black uppercase mb-2">Article 18 - Contact</h2>
<p>Pour toute question relative aux presentes CGU :</p>
<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>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>
</section>

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %}
{% block title %}Conditions Generales de Vente - CRM Ecosplay{% endblock %}
{% block description %}Conditions generales de vente du CRM Ecosplay.{% endblock %}
{% block title %}Conditions Generales de Vente - CRM SITECONSEIL{% endblock %}
{% block description %}Conditions generales de vente du CRM SITECONSEIL.{% endblock %}
{% block body %}
<div class="page-container">
@@ -11,46 +11,52 @@
<section>
<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">Toute commande ou souscription a un service implique l'acceptation pleine et entiere des presentes CGV.</p>
</section>
<section>
<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">
<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 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>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>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>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>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>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>Esy-Mail</strong> : hebergement et gestion de messagerie professionnelle, utilisant l'infrastructure Amazon Simple Email Service (AWS SES)</li>
<li><strong>Esy-Mailer</strong> : creation et envoi de campagnes emailing</li>
<li><strong>Esy-Analytics</strong> : suivi et analyse de frequentation des sites internet</li>
<li><strong>Esy-Monitor</strong> : surveillance de la disponibilite et des performances des services</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>
</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">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">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">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>
<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">
<li>Maintenance programmee ou d'urgence</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>Force majeure</li>
</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">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é 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é 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>
<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">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>
<ul class="list-disc pl-6 mt-2">
<li>Accepter le nouveau tarif et poursuivre l'utilisation du service</li>
@@ -68,27 +74,26 @@
<li>Prelevement SEPA</li>
<li>Tout autre moyen de paiement disponible via Stripe</li>
</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>
</section>
<section>
<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">
<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 de solvabilite</strong> : analyse de la solvabilite du client, si requis par le montant ou la duree de l'engagement</li>
</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">
<li>Informations fournies inexactes ou incompletes</li>
<li>Entreprise non immatriculee, radiee, suspendue ou en liquidation</li>
<li>Solvabilite insuffisante</li>
<li>Antecedents d'impayes aupres de l'association</li>
<li>Activite du client incompatible avec les valeurs ou l'objet 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 la société</li>
</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>
@@ -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+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>
<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>
<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>
<ul class="list-disc pl-6 mt-2">
<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>
<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">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">
<li>Envoye les relances prevues a l'article 7 (processus de facturation)</li>
<li>Adresse une mise en demeure par email</li>
<li>Suspendu les services concernes</li>
<li>Resilie le contrat conformement a l'article 14</li>
</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>
@@ -164,35 +169,35 @@
<li><strong>Alma</strong> : paiement en 2, 3 ou 4 fois selon les conditions d'Alma</li>
</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"><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-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">
<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>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>
<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>
<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 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">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>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 la SARL SITECONSEIL</strong>.</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>
<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>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>
<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>
</section>
<section>
<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>
<ul class="list-disc pl-6 mt-2">
<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>
</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"><strong>Resiliation a l'initiative de l'association :</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"><strong>Resiliation a l'initiative de la société :</strong></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>
<h2 class="text-xl font-black uppercase mb-2">Article 15 - Cessation d'activite de l'association</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 class="mt-2">Pendant ce delai, l'association s'engage a :</p>
<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 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, la société s'engage a :</p>
<ul class="list-disc pl-6 mt-2">
<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>Ne facturer aucun service au-dela de la date de fermeture annoncee</li>
</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">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">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">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>
<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>
<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 courrier : Association E-Cosplay, 42 rue de Saint-Quentin, 02800 Beautor, France</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 : 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>
</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>
</section>
<section>
<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 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>
<h2 class="text-xl font-black uppercase mb-2">Article 18 - Contact</h2>
<p>Pour toute question relative aux presentes CGV :</p>
<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>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>
</section>

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %}
{% block title %}Conformite - CRM Ecosplay{% endblock %}
{% block description %}Informations de conformite reglementaire et transparence de l'association E-Cosplay.{% endblock %}
{% block title %}Conformite - CRM SITECONSEIL{% endblock %}
{% block description %}Informations de conformite reglementaire et transparence de la SARL SITECONSEIL.{% endblock %}
{% block body %}
<div class="page-container">
@@ -11,45 +11,42 @@
<section>
<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">
<li>RNA : W022006988</li>
<li>SIREN : 943121517</li>
<li>Siege social : 42 rue de Saint-Quentin, 02800 Beautor, France</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>Siret : 418 664 058</li>
<li>TVA intracommunautaire : FR05 418 664 058</li>
<li>Code NAF/APE : 62.01Z - Programmation informatique</li>
<li>Siege social : 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
</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"><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">
<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">
<p class="mt-2 flex flex-wrap gap-2">
<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>
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>
</section>
<section>
<h2 class="text-xl font-black uppercase mb-2">2. Respect de la legislation associative</h2>
<p>L'association E-Cosplay s'engage a respecter l'ensemble de la legislation applicable aux associations a but non lucratif, notamment :</p>
<h2 class="text-xl font-black uppercase mb-2">2. Respect de la legislation</h2>
<p>La SARL SITECONSEIL s'engage a respecter l'ensemble de la legislation applicable, notamment :</p>
<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 general des impots</strong> : respect des obligations fiscales applicables aux associations (TVA, impots commerciaux si applicable)</li>
<li><strong>RGPD</strong> : protection des donnees personnelles, designation d'un DPO (DPO-167945)</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 (TVA, impot sur les societes)</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>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>
</ul>
</section>
<section>
<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">
<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>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>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>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>Comptabilite</strong> : une comptabilite reguliere est tenue conformement aux obligations legales</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>
</ul>
@@ -57,9 +54,9 @@
<section>
<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">
<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>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>
@@ -69,14 +66,14 @@
<section>
<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">
<li>Chiffrement des communications (TLS/HTTPS)</li>
<li>Hashage des mots de passe (bcrypt)</li>
<li>Double authentification (2FA) pour tous les comptes</li>
<li>Signature electronique S/MIME des emails</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>Acces restreint aux donnees (principe du moindre privilege)</li>
</ul>
@@ -84,7 +81,7 @@
<section>
<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">
<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>
@@ -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>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>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>
<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">
@@ -113,7 +110,7 @@
<section>
<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">
<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>
@@ -127,19 +124,18 @@
<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>
<ul class="list-disc pl-6 mt-2">
<li>Identifiant : <strong>DPO-167945</strong></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>
<li>Contact : <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a></li>
</ul>
</section>
<section>
<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">
<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>Courrier : Association E-Cosplay, 42 rue de Saint-Quentin, 02800 Beautor, 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>Courrier : SARL SITECONSEIL, 27 rue Le Sérurier, 02100 Saint-Quentin, France</li>
</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>
<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' %}
{% block title %}Politique de Cookies - CRM Ecosplay{% endblock %}
{% block description %}Politique de cookies du site CRM Ecosplay.{% endblock %}
{% block title %}Politique de Cookies - CRM SITECONSEIL{% endblock %}
{% block description %}Politique de cookies du site CRM SITECONSEIL.{% endblock %}
{% block body %}
<div class="page-container">
@@ -16,7 +16,7 @@
<section>
<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">
<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>
@@ -70,14 +70,13 @@
<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>
<ul class="list-disc pl-6 mt-2">
<li>DPO : <strong>DPO-167945</strong></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>
</section>
<section>
<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>
<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' %}
{% block title %}Hebergement - CRM Ecosplay{% endblock %}
{% block description %}Informations d'hebergement du site CRM Ecosplay.{% endblock %}
{% block title %}Hebergement - CRM SITECONSEIL{% endblock %}
{% block description %}Informations d'hebergement du site CRM SITECONSEIL.{% endblock %}
{% block body %}
<div class="page-container">
@@ -11,13 +11,12 @@
<section>
<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">
<li><strong>Google Cloud Platform (GCP)</strong></li>
<li>Google Ireland Limited</li>
<li>Gordon House, Barrow Street, Dublin 4, Irlande</li>
<li>Region : europe-west1 (Belgique)</li>
<li>Site : cloud.google.com</li>
<li><strong>OVHcloud</strong></li>
<li>SAS OVH, 2 rue Kellermann, 59100 Roubaix, France</li>
<li>Datacenters : Roubaix, Gravelines, Strasbourg, Paris</li>
<li>Site : ovhcloud.com</li>
</ul>
</section>
@@ -65,16 +64,15 @@
<section>
<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 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>
<p>L'ensemble des donnees de la Plateforme (base de donnees, fichiers, sauvegardes) est heberge en <strong>France</strong> chez OVHcloud.</p>
</section>
<section>
<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>
<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>
{% endblock %}

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %}
{% block title %}Mentions Legales - CRM Ecosplay{% endblock %}
{% block description %}Mentions legales du site CRM Ecosplay.{% endblock %}
{% block title %}Mentions Legales - CRM SITECONSEIL{% endblock %}
{% block description %}Mentions legales du site CRM SITECONSEIL.{% endblock %}
{% block body %}
<div class="page-container">
@@ -11,16 +11,16 @@
<section>
<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">
<li><strong>Association E-Cosplay</strong></li>
<li>RNA : W022006988</li>
<li>SIREN : 943121517</li>
<li>Siege social : 42 rue de Saint-Quentin, 02800 Beautor, 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><strong>SARL SITECONSEIL</strong></li>
<li>Siret : 418 664 058</li>
<li>TVA intracommunautaire : FR05 418 664 058</li>
<li>Code NAF/APE : 62.01Z - Programmation informatique</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>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>Directeur de la publication : Serreau Jovann</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>
</section>
@@ -28,53 +28,50 @@
<h2 class="text-xl font-black uppercase mb-2">2. Hebergement</h2>
<p>Le site est heberge par :</p>
<ul class="list-disc pl-6 mt-2">
<li><strong>Google Cloud Platform</strong></li>
<li>Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irlande</li>
<li><strong>OVHcloud</strong></li>
<li>SAS OVH, 2 rue Kellermann, 59100 Roubaix, France</li>
<li>Datacenters : Roubaix, Gravelines, Strasbourg, Paris</li>
</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>
<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>
<h2 class="text-xl font-black uppercase mb-2">4. Paiement</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>
</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>
<h2 class="text-xl font-black uppercase mb-2">5. Donnees personnelles</h2>
<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>
<ul class="list-disc pl-6 mt-2">
<li>Identifiant DPO : <strong>DPO-167945</strong></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>
<li>Contact DPO : <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a></li>
</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>
</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>
</section>
<section>
<h2 class="text-xl font-black uppercase mb-2">8. 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>
<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 Saint-Quentin (Aisne) seront seuls competents.</p>
</section>
<section>
<h2 class="text-xl font-black uppercase mb-2">9. 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>
<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@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">contact@siteconseil.fr</a>.</p>
</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>
{% endblock %}

View File

@@ -1,7 +1,7 @@
{% extends 'legal/_layout.html.twig' %}
{% block title %}Politique de Confidentialite - CRM Ecosplay{% endblock %}
{% block description %}Politique de protection des donnees personnelles du CRM Ecosplay.{% endblock %}
{% block title %}Politique de Confidentialite - CRM SITECONSEIL{% endblock %}
{% block description %}Politique de protection des donnees personnelles du CRM SITECONSEIL.{% endblock %}
{% block body %}
<div class="page-container">
@@ -15,10 +15,10 @@
<h2 class="text-xl font-black uppercase mb-2">1. Responsable du traitement</h2>
<p>Le responsable du traitement des donnees personnelles est :</p>
<ul class="list-disc pl-6 mt-2">
<li><strong>Association E-Cosplay</strong></li>
<li>SIREN : 943121517 / RNA : W022006988</li>
<li>42 rue de Saint-Quentin, 02800 Beautor, 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><strong>SARL SITECONSEIL</strong></li>
<li>Siret : 418 664 058</li>
<li>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>
</ul>
</section>
@@ -26,8 +26,7 @@
<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>
<ul class="list-disc pl-6 mt-2">
<li>Identifiant DPO : <strong>DPO-167945</strong></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>
<li>Contact : <a href="mailto:rgpd@siteconseil.fr" class="text-indigo-800 underline hover:text-indigo-950">rgpd@siteconseil.fr</a></li>
</ul>
</section>
@@ -82,7 +81,7 @@
<h2 class="text-xl font-black uppercase mb-2">6. Destinataires des donnees</h2>
<p>Vos donnees personnelles sont accessibles par :</p>
<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>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>
@@ -113,7 +112,7 @@
<section>
<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">
<li>Chiffrement des communications (TLS/HTTPS)</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 de retrait du consentement</strong> : retirer votre consentement a tout moment (newsletter, etc.)</li>
</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>
@@ -150,7 +149,7 @@
<section>
<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>
<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">
<head>
<meta charset="UTF-8">
<title>Contrat Revendeur - E-Cosplay</title>
<title>Contrat Revendeur - SITECONSEIL</title>
<style>
@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; }
@@ -33,8 +33,8 @@
</head>
<body>
<div class="banner">
{% if logo %}<img src="{{ logo }}" alt="E-Cosplay">{% endif %}
<div class="banner-title">Association E-Cosplay — Contrat Revendeur</div>
{% if logo %}<img src="{{ logo }}" alt="SITECONSEIL">{% endif %}
<div class="banner-title">SARL SITECONSEIL — Contrat Revendeur</div>
</div>
<div class="container">
<h1>Contrat de Partenariat Revendeur</h1>
@@ -46,10 +46,10 @@
<div class="parties-row">
<div class="parties-cell left">
<span class="label">Le Prestataire</span>
<strong>Association E-Cosplay</strong><br>
<strong>SARL SITECONSEIL</strong><br>
RNA : W022006988 — SIREN : 943121517<br>
42 rue de Saint-Quentin, 02800 Beautor, France<br>
contact@e-cosplay.fr
27 rue Le Sérurier, 02100 Saint-Quentin, France<br>
contact@siteconseil.fr
</div>
<div class="parties-cell">
<span class="label">Le Revendeur</span>
@@ -65,7 +65,7 @@
<div class="section">
<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>
</div>
@@ -127,7 +127,7 @@
<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>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>
</ul>
</div>
@@ -140,18 +140,18 @@
<div class="section">
<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 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 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 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 class="section">
<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 class="section">
<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 class="section">
@@ -171,7 +171,7 @@
<div class="section">
<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 class="section">
@@ -181,17 +181,17 @@
<div class="section">
<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>
<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-row">
<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 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>
<span class="sig-date">Date et signature</span>
</div>
@@ -206,9 +206,9 @@
</div>
<div class="footer">
Association E-Cosplay — RNA W022006988 — SIREN 943121517<br>
42 rue de Saint-Quentin, 02800 Beautor, France — contact@e-cosplay.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
SARL SITECONSEIL — RNA W022006988 — SIREN 943121517<br>
27 rue Le Sérurier, 02100 Saint-Quentin, France — contact@siteconseil.fr — 06 79 34 88 02<br>
<a href="https://www.siteconseil.fr" style="color: #999;">www.siteconseil.fr</a>
</div>
</div>
</body>

View File

@@ -41,8 +41,8 @@
</head>
<body>
<div class="banner">
{% if logo %}<img src="{{ logo }}" alt="CRM Ecosplay">{% endif %}
<div class="banner-title">Association E-Cosplay</div>
{% if logo %}<img src="{{ logo }}" alt="CRM SITECONSEIL">{% endif %}
<div class="banner-title">SARL SITECONSEIL</div>
</div>
<div class="container">
<span class="doc-type">Droit d'acces</span>
@@ -87,16 +87,16 @@
</div>
<div class="hmac">HMAC-SHA256 : {{ attestation.hmac }}</div>
<div style="margin-top: 16px;">
<p class="dpo"><strong>DPO (DPO-167945)</strong></p>
<span class="contact-box">contact@e-cosplay.fr</span>
<p class="dpo"><strong>DPO</strong></p>
<span class="contact-box">contact@siteconseil.fr</span>
</div>
<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>
<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>
42 rue de Saint-Quentin, 02800 Beautor, France &mdash; contact@e-cosplay.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
SARL SITECONSEIL &mdash; RNA W022006988 &mdash; SIREN 943121517<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.siteconseil.fr" style="color: #999;">www.siteconseil.fr</a>
</div>
</div>
</body>

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