Skip to content

feat: Add core and agent family package structure

salaheddine zidani a demandé de fusionner feature/add-core-and-agent-family-packages vers develop

📋 Overview

This MR introduces the foundational core packages and reorganizes agent-related entities into a family-based package structure to support multi-family agent microservices architecture.

🎯 Motivation

  • Establish consistent base classes for all entities and DTOs across the project
  • Organize agent entities by family to enable independent microservice development
  • Prepare infrastructure for multiple agent families (customerCare, legal, accounting, etc.)
  • Eliminate circular dependencies between agent family packages

📦 What's Added

Core Packages

  • core.entities: BaseEntity with auto-generated ID, UUID, and timestamps
  • core.dtos: BaseEntityDTO with common DTO fields
  • core.enumerations: Placeholder for future core enumerations

Agent Common Packages

  • agent.common.entities: Shared entities used across all agent families
    • Agent, AgentLanguage, ConversationSession, KnowledgeDocument, AgentMessage, AgentPromptTemplate
  • agent.common.enumerations: Shared enumerations
    • AgentFamily, AgentType, ResponseStyle, ToneVoice, MessageChannel, SessionStatus, MessageDirection

Agent CustomerCare Packages

  • agent.customerCare.entities: Customer care specific entities
    • AgentWorkingHours, DailySchedule, Client, Ticket
  • agent.customerCare.enumerations: Customer care specific enumerations
    • DayOfWeek, TicketChannel, TicketPriority, TicketStatus

Future Agent Families (Placeholders)

  • agent.accounting
  • agent.community
  • agent.legal
  • agent.personal
  • agent.seo

🏗️ Architecture Benefits

  • Modularity: Each agent family can be developed independently
  • Microservice-ready: Each microservice scans only core + agent.common + its specific family package
  • No circular dependencies: Clean dependency graph (family packages → common → core)
  • Scalability: Easy to add new agent families without impacting existing ones
  • Consistency: All entities inherit from BaseEntity for standardized persistence

🔍 Technical Details

  • All entities extend BaseEntity for consistent ID and timestamp management
  • BaseEntity includes UUID field for external API references
  • Automatic timestamp management with @CreationTimestamp and @UpdateTimestamp
  • BaseEntityDTO uses @SuperBuilder for proper DTO inheritance support

Checklist

  • Core packages created with BaseEntity and BaseEntityDTO
  • Agent common packages with shared entities and enums
  • Agent customerCare packages with family-specific components
  • Placeholder packages for future agent families
  • Zero circular dependencies verified
  • All entities properly extend BaseEntity
  • Changelog updated

📝 Notes

The core packages are designed to be reusable across all modules (agent and non-agent).

Modification effectuée par salaheddine zidani

Rapports de requête de fusion