From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation

---
 fdx-commons/fdxcommons-dao-ifaces/src/main/java/com/megatim/fdxcommons/dao/ifaces/integration/ColumnDefinitionDAO.java |   84 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/fdx-commons/fdxcommons-dao-ifaces/src/main/java/com/megatim/fdxcommons/dao/ifaces/integration/ColumnDefinitionDAO.java b/fdx-commons/fdxcommons-dao-ifaces/src/main/java/com/megatim/fdxcommons/dao/ifaces/integration/ColumnDefinitionDAO.java
new file mode 100644
index 0000000..73dccdc
--- /dev/null
+++ b/fdx-commons/fdxcommons-dao-ifaces/src/main/java/com/megatim/fdxcommons/dao/ifaces/integration/ColumnDefinitionDAO.java
@@ -0,0 +1,84 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
+ */
+package com.megatim.fdxcommons.dao.ifaces.integration;
+
+import com.megatim.fdxcommons.dao.ifaces.abstracts.CustomDAOIfaces;
+import com.megatim.fdxcommons.model.integration.ColumnDefinition;
+import com.megatim.fdxcommons.model.integration.ColumnDefinitionId;
+import com.megatim.fdxcommons.model.searchentities.ColumnDefinitionSearch;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import javax.persistence.Query;
+import javax.persistence.Tuple;
+
+/**
+ *
+ * @author ASUS
+ */
+public interface ColumnDefinitionDAO extends CustomDAOIfaces<ColumnDefinition, ColumnDefinitionId, ColumnDefinitionSearch> {
+
+    public default ColumnDefinition findByNameAndReferentielAndTypeFichier(String columnName, String referentielVersion, String codeTypeFichier) {
+        Query query = getEntityManager().createQuery("SELECT c FROM ColumnDefinition c "
+                + " WHERE c.name = :columnName AND c.referentielVersion = :referentielVersion "
+                + " AND  c.codeTypeFichier = :codeTypeFichier");
+
+        query.setParameter("columnName", columnName);
+        query.setParameter("referentielVersion", referentielVersion);
+        query.setParameter("codeTypeFichier", codeTypeFichier);
+
+        Optional<ColumnDefinition> optColumnDef = ((List<ColumnDefinition>) query.getResultList()).stream().findFirst();
+
+        return optColumnDef.isPresent() ? optColumnDef.get() : null;
+    }
+
+    public default List<ColumnDefinition> findByReferentielAndTypeFichier(String referentielVersion, String codeTypeFichier) {
+        return getEntityManager()
+                .createQuery("SELECT c FROM ColumnDefinition c"
+                        + " WHERE c.referentielVersion = :referentielVersion AND  c.codeTypeFichier = :codeTypeFichier", ColumnDefinition.class)
+                .setParameter("referentielVersion", referentielVersion)
+                .setParameter("codeTypeFichier", codeTypeFichier)
+                .getResultList();
+
+    }
+
+    public default List<ColumnDefinition> findByReferentiel(String referentielVersion) {
+        return getEntityManager()
+                .createQuery("SELECT c FROM ColumnDefinition c"
+                        + " WHERE c.referentielVersion = :referentielVersion ", ColumnDefinition.class)
+                .setParameter("referentielVersion", referentielVersion)
+                .getResultList();
+    }
+
+    public default Set<String> findTypeFichierByReferentiel(String referentielVersion) {
+        Set<String> typeFichiers = new HashSet<>();
+        List<ColumnDefinition> columnDefinitions = findByReferentiel(referentielVersion);
+
+        columnDefinitions.stream().forEach(c -> {
+            if (!typeFichiers.contains(c.getCodeTypeFichier())) {
+                typeFichiers.add(c.getCodeTypeFichier());
+            }
+        });
+        return typeFichiers;
+    }
+
+    @Override
+    public default ColumnDefinition getById(ColumnDefinitionId id) {
+        Query query = getEntityManager().createQuery("SELECT c FROM ColumnDefinition c"
+                + " WHERE c.referentielVersion = :referentielVersion AND  c.codeTypeFichier = :codeTypeFichier"
+                + " AND c.name = :name");
+
+        query.setParameter("referentielVersion", id.getReferentielVersion());
+        query.setParameter("codeTypeFichier", id.getCodeTypeFichier());
+        query.setParameter("name", id.getName());
+
+        Optional<ColumnDefinition> optColumnDef = ((List<ColumnDefinition>) query.getResultList()).stream().findFirst();
+
+        return optColumnDef.isPresent() ? optColumnDef.get() : null;
+    }
+
+    List<Tuple> byRefVersionAndByTypeFichier();
+}

--
Gitblit v1.10.0