feat: Add core and agent family package structure
📋 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.accountingagent.communityagent.legalagent.personalagent.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
BaseEntityfor consistent ID and timestamp management - BaseEntity includes UUID field for external API references
- Automatic timestamp management with
@CreationTimestampand@UpdateTimestamp - BaseEntityDTO uses
@SuperBuilderfor 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).