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-consultation/fdxconsultation-core-ifaces/src/main/java/com/megatim/fdxconsultation/core/ifaces/abtracts/GeneriConsultingManagerIFaces.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 deletions(-)

diff --git a/fdx-consultation/fdxconsultation-core-ifaces/src/main/java/com/megatim/fdxconsultation/core/ifaces/abtracts/GeneriConsultingManagerIFaces.java b/fdx-consultation/fdxconsultation-core-ifaces/src/main/java/com/megatim/fdxconsultation/core/ifaces/abtracts/GeneriConsultingManagerIFaces.java
new file mode 100644
index 0000000..bb37122
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-core-ifaces/src/main/java/com/megatim/fdxconsultation/core/ifaces/abtracts/GeneriConsultingManagerIFaces.java
@@ -0,0 +1,89 @@
+/*
+ * 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.fdxconsultation.core.ifaces.abtracts;
+
+import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer;
+import com.bekosoftware.genericmanagerlayer.core.ifaces.GenericManager;
+import com.megatim.common.annotations.OrderType;
+import com.megatim.fdxcommons.model.enumeration.TypeOperation;
+import com.megatim.fdxconsultation.model.administration.User;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * @author ASUS
+ */
+public interface GeneriConsultingManagerIFaces<T, K, S, ID extends Serializable, U> extends GenericManager<T, ID> {
+
+    K mapToDto(T entity);
+    
+    S mapToDetailDto(T entity);
+
+    public abstract String getEntityIdName();
+
+    public S getById(ID id);
+
+    public default List<K> convertListToDto(List<T> datas) {
+        List<K> dtos = new ArrayList<>();
+
+        if (datas != null) {
+            for (T data : datas) {
+                dtos.add(mapToDto(data));
+            }
+        }
+        return dtos;
+    }
+
+    public default List<K> getWithPagination(Integer pageNumber, Integer pagesize, U searchEntity, User connectedUser) {
+
+        Map<String, OrderType> orders = new HashMap<>();
+
+        //On trie par id
+        orders.put(getEntityIdName(), OrderType.DESC);
+        //On construit la requete
+        RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER);
+
+        //Construction de l'index
+        int index = (pageNumber - 1) * pagesize;
+
+        //On on recherche l'entité
+        List<T> datas = filter(requeteur.getPredicats(), orders, null, index, pagesize);
+        List<K> dtos = convertListToDto(datas);
+
+        return dtos;
+    }
+
+    public default List<K> getAll(U searchEntity, User connectedUser) {
+
+        //On construit la requete
+        RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER);
+        Map<String, OrderType> orders = new HashMap<>();
+
+        //On trie par id
+        orders.put(getEntityIdName(), OrderType.DESC);
+
+        //On on recherche l'entité
+        List<T> datas = filter(requeteur.getPredicats(), orders, null, 0, -1);
+        List<K> dtos = convertListToDto(datas);
+
+        return dtos;
+
+    }
+
+    public default Long size(U searchEntity) {
+        //On construit la requete
+        RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER);
+
+        //On on recherche l'entité
+        return count(requeteur.getPredicats());
+    }
+
+    public abstract RestrictionsContainer construireRequete(U searchEntity, TypeOperation typeOperation);
+
+}

--
Gitblit v1.10.0