- Use a domain-driven design approach
- Keep track of the features in the AGENTS.md file (package, base URL, entities only)
- Use a package by feature approach bundling rest controllers, services, repositories, models, configurations
- Each feature MUST have its own dedicated package under
com.deviceinsight.template.<feature-name> - NEVER mix features in the same package - each feature is completely self-contained
- Package naming: use lowercase, plural or singular based on domain concept (e.g.,
devices,devicegroups,users,orders) - All feature code (controllers, services, repositories, DTOs, exceptions, configurations) goes in the feature package
- Example:
devices/anddevicegroups/are separate packages, not mixed together
- Each feature MUST have its own dedicated package under
- When creating a new feature, ALWAYS create a new package - do not add to existing feature packages
- Use a domain-driven design approach
- Keep track of the features in the AGENTS.md file (package, base URL, entities only)
- Use a package by feature approach bundling rest controllers, services, repositories, models, configurations
- Each feature MUST have its own dedicated package under
com.deviceinsight.template.<feature-name> - NEVER mix features in the same package - each feature is completely self-contained
- Package naming: use lowercase, plural or singular based on domain concept (e.g.,
devices,devicegroups,users,orders) - All feature code (controllers, services, repositories, DTOs, exceptions, configurations) goes in the feature package
- Example:
devices/anddevicegroups/are separate packages, not mixed together
- Each feature MUST have its own dedicated package under
- When creating a new feature, ALWAYS create a new package - do not add to existing feature packages