Première tranche verticale : domaine circuit via DataProvider/API

This commit is contained in:
2026-08-14 07:29:00 +02:00
commit 4d29347aab
15 changed files with 2286 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
#include "mock_bdd.h"
// ============================================================================
// Valeurs fixes du POC - à modifier ici si besoin d'un autre scénario de test.
// ============================================================================
QVariant Bdd::requete_unique(const QString &req)
{
// --- Lectures (SELECT) utilisées par le chemin main.qml -> home_attente.qml -> home_accueil.qml ---
if (req.contains("Nom=\"Specifique_client\""))
return QVariantList{ "0" }; // 0 = shipheart_specifique_client_tous -> mène à home_accueil.qml
if (req.contains("Nom=\"Theme\""))
return QVariantList{ "0" }; // Thème 0 = "Original"
if (req.contains("Nom=\"Version_cm\""))
return QVariantList{ "CM5" }; // Doit contenir "CM5" -> shipheart_generation_shipbase_v3
if (req.contains("Nom=\"Nom_du_bateau\""))
return QVariantList{ "Bateau de test (POC WASM)" };
if (req.contains("Validation_economiseur"))
return QVariantList{ "0" }; // Économiseur désactivé par défaut pour ce POC
// --- Écritures (UPDATE) : Veille, Synchro, New_bip, Theme (cas dépassement d'index) ---
// Valeur de retour jamais utilisée par l'appelant dans ces cas -> valeur neutre.
return QVariantList{ QString() };
}
int Bdd::requete(const QString &req)
{
m_derniere_requete = req;
if (req.contains("Nom=\"Fichier_image_accueil\""))
return 1; // 1 ligne de résultat "trouvée"
return 0;
}
QVariant Bdd::lecture_ligne()
{
if (m_derniere_requete.contains("Nom=\"Fichier_image_accueil\""))
return QVariantList{ "" }; // "" -> l'image par défaut est utilisée (cf home_accueil.qml)
return QVariantList{};
}
+33
View File
@@ -0,0 +1,33 @@
#pragma once
#include <QObject>
#include <QString>
#include <QVariant>
#include <QVariantList>
// ============================================================================
// Bdd (MOCK) - POC WebAssembly
// ----------------------------------------------------------------------------
// Bouchon de la classe Bdd réelle (bdd.h/bdd.cpp non disponibles à ce stade).
// Ne se connecte à aucune base de données : reconnaît le texte de chaque
// requête reçue et renvoie une valeur fixe cohérente avec le comportement
// attendu par main.qml / Shipheart_page.qml / home_attente.qml / home_accueil.qml.
//
// Signatures alignées sur l'usage observé dans ces 4 fichiers QML :
// - requete_unique(req) -> une seule valeur de résultat (SELECT ou UPDATE)
// - requete(req)/lecture_ligne() -> requête à plusieurs lignes potentielles
// (ici, une seule ligne utilisée : "Fichier_image_accueil")
// ============================================================================
class Bdd : public QObject
{
Q_OBJECT
public:
explicit Bdd(QObject *parent = nullptr) : QObject(parent) {}
Q_INVOKABLE QVariant requete_unique(const QString &req);
Q_INVOKABLE int requete(const QString &req);
Q_INVOKABLE QVariant lecture_ligne();
private:
QString m_derniere_requete;
};
+26
View File
@@ -0,0 +1,26 @@
#pragma once
#include <QObject>
#include <QString>
// ============================================================================
// Systeme (MOCK) - POC WebAssembly
// ----------------------------------------------------------------------------
// Bouchon de la classe Systeme réelle (systeme.h/systeme.cpp non disponibles
// à ce stade). commande_shell() n'est appelée, dans les fichiers du POC, que
// pour les installations "écran déporté" (synchro_repertoires_shiprs() dans
// home_attente.qml) - hors scope du chemin ShipBase standard testé ici.
// Bouchon neutre par sécurité, au cas où il serait tout de même invoqué.
// ============================================================================
class Systeme : public QObject
{
Q_OBJECT
public:
explicit Systeme(QObject *parent = nullptr) : QObject(parent) {}
Q_INVOKABLE QString commande_shell(const QString &commande, const QString &fichier_sortie)
{
Q_UNUSED(commande)
Q_UNUSED(fichier_sortie)
return QString();
}
};
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include <QObject>
// ============================================================================
// TbMesuresModel (MOCK) - POC WebAssembly
// ----------------------------------------------------------------------------
// Bouchon minimal : dans le périmètre de ce POC (main.qml jusqu'à
// home_accueil.qml), ce modèle n'est instancié qu'au niveau racine
// (property TbMesuresModel tbmesuresModel : TbMesuresModel{}) et jamais
// utilisé au-delà - un QObject vide suffit à ce stade.
// ============================================================================
class TbMesuresModel : public QObject
{
Q_OBJECT
public:
explicit TbMesuresModel(QObject *parent = nullptr) : QObject(parent) {}
};