42 Commits

Author SHA1 Message Date
Thomas Fransolet
af6b5b76ef Self-service onboarding (Stripe + Resend) + Postgres v3 schema (pgvector, media, visitor questions)
75 fichiers, ~1 mois de travail depuis f222861 (17/07). Contenu :

Onboarding self-service — jamais exécuté de bout en bout
  OnboardingController, StripeWebhookController, StripeService, ResendEmailService
  + IEmailService (10 templates), EmailTemplates/, TrialLifecycleService (Hangfire),
  PasswordTokenHelper, SlugHelper, 5 DTOs. Essai 14 j, Stripe customer/Checkout/Tax,
  mot de passe oublié + invitation user, plafond IA d'essai.

Schéma Postgres v3 — passe pendant que la base est vide
  ContentEmbedding + index HNSW (vector_cosine_ops), IEmbeddingService +
  GoogleEmbeddingService (gemini-embedding-001, 768 dims), Deployment/Dockerfile.postgres
  (postgis 3.4.3 + pgvector 0.8.6, épinglé par digest — un tag mobile rejouerait le
  warning de collation glibc). Colonnes Resource : StoragePath, FileName,
  IncludeInAiKnowledge, AiIndexStatus + nouveaux ResourceType ajoutés EN FIN d'enum.

Guide IA
  Champs Guide* sur Instance + InstanceDTO, AssistantService lit la configuration client
  dans les 4 blocs de prompt (ton codé en dur retiré, règle hors-sujet ajoutée aux deux
  variantes qui n'en avaient pas), IHttpClientFactory à la place des new HttpClient().
  Table VisitorQuestion + ConversationId sur AiChatRequest.

Stats
  Rétention unifiée à 13 mois (instances ET plans), VisitEventPurgeService.

Nettoyage
  IsStepLocked / IsHiddenInitially / FactContent supprimés de GuidedStep — IsStepLocked
  rendait une étape définitivement infranchissable même après réussite.
  SectionMap allégé (-57 lignes).

Tests
  SectionParcoursControllerTests, FakeConfiguration, FakeEmailService.
  ContentEmbedding a cassé 116 tests sur 124 (EF InMemory ne connaît pas Vector) :
  l'entité est exclue quand le provider n'est pas Npgsql. Conséquence assumée —
  le vector store n'est couvert par aucun test. dotnet test 124/124.

10 migrations EF. Base locale à jour, dotnet build 0 erreur.
Rien n'est en prod : la bascule Mongo → Postgres est décrite dans DOCS/STATUS.md §1quinquies.

⚠️ appsettings.json contient les clés Stripe (test) et Resend (prod) en clair — à rotationner.
2026-08-09 22:11:48 +02:00
Thomas Fransolet
9633ae43b7 Add support for web + misc 2026-05-07 16:49:56 +02:00
Thomas Fransolet
e0ff0eeba6 Quota update in controller, audit log (serilog) + ai translator + Unit tests ! (to be tested) + migration update 2026-04-10 16:28:33 +02:00
Thomas Fransolet
09b7c75dac WeatherSync service (to test) 2026-03-25 17:38:44 +01:00
Thomas Fransolet
d5353eea9c wip service, fix some assistant ia bug, wip section agenda update, section event annotation etc 2026-03-25 10:56:54 +01:00
Thomas Fransolet
a452f4af04 Add migration, need to check if migration with apikey correct.. ! + add roles and security (role and apikey) - need to be tested + visitevent stats + ai etc + all need to be tested ! 2026-03-13 17:45:01 +01:00
Thomas Fransolet
bde1666b42 Update save geometry + other, id null etc (thx claude) 2026-03-06 15:22:02 +01:00
Thomas Fransolet
98f3606887 Fix geopoint doesn't working 2025-11-27 16:52:10 +01:00
Thomas Fransolet
94443fa411 Update puzzle to game + misc 2025-11-27 16:19:00 +01:00
Thomas Fransolet
e70b574091 Updated applicationInstance for sectionEvent in dto 2025-10-17 23:21:10 +02:00
Thomas Fransolet
8f16f1570f Added method to return all section from one type + misc 2025-09-18 23:23:36 +02:00
Thomas Fransolet
fd191ec647 Moved guided stuffs 2025-08-20 14:35:37 +02:00
Thomas Fransolet
cbf3a3c7f5 Misc 2025-08-14 23:24:30 +02:00
Thomas Fransolet
4d755549af Updated code for device creation (create appconfig) + misc 2025-08-14 21:31:26 +02:00
Thomas Fransolet
c8c5902292 misc + fixs 2025-08-14 16:30:03 +02:00
Thomas Fransolet
5aabf35f9d Add isweb to instance 2025-08-01 16:24:01 +02:00
Thomas Fransolet
a051ae5f70 list of coordinates to geometry support (for sql postgis support) 2025-07-10 21:57:54 +02:00
Thomas Fransolet
d241720102 Breaking changes ! WIP new format (ApplicationInstance) + SectionEvent and updated SectionMap 2025-07-09 17:37:30 +02:00
Thomas Fransolet
3c9461211e Added mymuseum origin 2025-06-06 11:55:16 +02:00
Thomas Fransolet
81f50664b4 update appSettings + comment mqtt service 2025-06-06 11:42:45 +02:00
Thomas Fransolet
7f6801c1f8 Update dockerfile + docker compose and appSettings 2025-05-28 13:45:05 +02:00
Thomas Fransolet
f4919801b7 Misc 2025-05-13 17:18:59 +02:00
Thomas Fransolet
7fb3feace4 Instance controller done 2025-03-19 10:57:53 +01:00
Thomas Fransolet
11cfeab210 Updated DB (wip) 2025-03-19 08:57:29 +01:00
Thomas Fransolet
8c18825c5d Wip clean code and pass by postgres ! 2025-03-06 17:39:08 +01:00
Thomas Fransolet
d968c419b3 Add specific origin for visitnamur and fortsaintheribert subdomain 2024-12-04 08:55:15 +01:00
Thomas Fransolet
05aab1bfa4 Added useless origin to cors 2024-12-03 15:05:55 +01:00
Thomas Fransolet
cc89f7b717 redirect to 1.2.0 + update entities and other for visitNamur 2023-12-15 17:00:07 +01:00
Thomas Fransolet
369b789abb WIP add Agenda, pdf, puzzle objects 2023-12-09 23:53:31 +01:00
Thomas Fransolet
2866c12985 Add MQTT events 2023-12-05 15:40:51 +01:00
85ca1368a2 Add resize image + small fixs 2022-12-20 17:34:15 +01:00
cf2d7759de Split resource in Resource and resourceData + Add Audio ResourceType 2022-10-26 17:11:45 +02:00
3b6c480cc6 Add instance model, dto, controller and service + update other objects and controllers 2022-10-06 17:07:11 +02:00
ee021510c8 add docker file + change for prod 2022-09-29 16:54:44 +02:00
1725376623 Add title and image to configuration 2022-09-17 22:43:24 +02:00
Thomas Fransolet
4b10635522 Upload multiple files at once (resource) 2021-12-23 14:06:58 +01:00
Thomas Fransolet
ed1e08f443 Add mqtt + changed first char of all DTO (Json deserialization fix) 2021-07-25 00:18:15 +02:00
Thomas Fransolet
fed416d078 ressource to reSource + fixs + resourceController (upload and show) 2021-05-07 22:57:06 +02:00
Thomas Fransolet
65e7c7f890 Add device controller + DeviceDetailDTO + create section (all in Data as JSON) + delete all section from config 2021-05-04 16:52:39 +02:00
Thomas Fransolet
c5b025af1e Display to configuration + update dtos + appsettings mongodb connection string 2021-04-10 22:56:42 +02:00
Thomas Fransolet
9e54ba1886 Update section info 2021-04-07 17:52:37 +02:00
Thomas Fransolet
629e9c31f7 First commit - init service with swagger, user controller + auth controller 2021-04-06 16:17:54 +02:00