diff --git a/README.md b/README.md
index 3fefda0..422c00c 100644
--- a/README.md
+++ b/README.md
@@ -1,49 +1,111 @@
+[](LICENSE.txt)
+
# Backend Core
-Commons utilities for backend enterprise application development
+Common utilities for backend enterprise application development.
-## What is backend-core?
+Backend Core provides a set of modular libraries to help you implement clean architecture (three-tier, hexagonal, DDD) in your enterprise Java applications. It includes:
-It's a set of common interfaces and implementations that allows to implement some of the principles of a clean architectural design for enterprise applications.
+- **Model layer**: domain interfaces and DTOs (`backend-core-model`)
+- **Data layer**: persistence contracts (`backend-core-data`) and JPA-based implementations (`backend-core-data-impl`)
+- **Service layer**: business logic contracts (`backend-core-business`) and default implementations (`backend-core-business-impl`)
+- **Spring Boot integration**: auto-configuration support (`backend-core-business-spring-impl`)
-For more info, please refer to [Documentation](src/site/markdown/index.md)
+## Features
-Snapshots are available [here](https://maven.flowingcode.com/snapshots).
+- Generic CRUD interfaces and base implementations
+- Strongly-typed filtering and query support
+- Reusable service layering and transactional support
+- Spring Boot integration for easy wiring
+- Fully documented design and examples
-## Download release
+## Getting Started
-Comming soon
+### Prerequisites
-## Building
+- Java 17 or higher
+- Maven 3.x
-- git clone repository
-- mvn clean install
+### Build from Source
-## Release notes
+```bash
+git clone https://github.com/FlowingCode/backend-core.git
+cd backend-core
+mvn clean install
+```
-See [here](https://github.com/FlowingCode/backend-core/releases)
+### Generate Documentation
-## Issue tracking
+```bash
+mvn site
+# Open target/site/index.html in your browser
+```
-Issues for this project are tracked [here](https://github.com/FlowingCode/backend-core/issues). All bug reports and feature requests are appreciated.
+## Usage
-## Contributions
+### Available Modules
-Contributions are welcome, but there are no guarantees that they are accepted as such. Process for contributing is the following:
+| Module | Description |
+|------------------------------------|----------------------------------------------------------------------|
+| `backend-core-model` | Domain interfaces, DTOs, exceptions and validation |
+| `backend-core-data` | DAO contracts (CRUD, Query, etc.) |
+| `backend-core-data-impl` | JPA implementations for DAO contracts |
+| `backend-core-business` | Service contracts (business logic interfaces) |
+| `backend-core-business-impl` | Default implementations for business/service contracts |
+| `backend-core-business-spring-impl`| Spring Boot auto-configuration for services and repositories |
-- Fork this project
-- Create an issue to this project about the contribution (bug or feature) if there is no such issue about it already. Try to keep the scope minimal.
-- Develop and test the fix or functionality carefully. Only include minimum amount of code needed to fix the issue.
-- Refer to the fixed issue in commit
-- Send a pull request for the original project
-- Comment on the original issue that you have implemented a fix for it
+Add the desired module(s) to your project's dependencies:
-## License & Author
+```xml
+
+
+ com.flowingcode.backend-core
+ backend-core-data
+ 1.1.0-SNAPSHOT
+
+```
+
+Snapshots are available at:
+
+```xml
+
+ flowingcode-snapshots
+ https://maven.flowingcode.com/snapshots
+
+ true
+
+
+```
+
+For release versions, see Maven Central (coming soon).
+
+## Documentation
+
+Detailed design documentation and API reference are available via the Maven Site and in the source Markdown docs:
+
+- [Maven Site](target/site/index.html)
+- [Design documentation](src/site/markdown/index.md)
-Commons-Backend is distributed under Apache License 2.0. For license terms, see LICENSE.txt.
+## Release Notes
-Commons-Backend is written by Flowing Code
+See the [GitHub releases](https://github.com/FlowingCode/backend-core/releases).
+
+## Issue Tracking
+
+Report bugs and request features on [GitHub Issues](https://github.com/FlowingCode/backend-core/issues).
+
+## Contributing
+
+Contributions are welcome! Please follow the process outlined below:
+
+1. Fork this repository.
+2. Create an issue for your contribution (bug or feature request), or select an existing one.
+3. Develop and test your changes carefully; include only the minimum code required.
+4. Reference the issue in your commit messages.
+5. Send a pull request and comment on the issue once it's ready.
+
+## License & Author
-# Developer Guide
+This library is distributed under Apache License 2.0. For license terms, see LICENSE.txt.
-Comming soon
+Backend Core is written by Flowing Code S.A.
diff --git a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java
index 66d3fb1..819b0e3 100644
--- a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java
+++ b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java
@@ -28,6 +28,12 @@
import com.flowingcode.backendcore.model.ErrorDescription;
import com.flowingcode.backendcore.validation.Validator;
+/**
+ * Validator for creation operations on entities.
+ *
+ * @param the type being validated
+ * @author mlopez
+ */
public interface CreationValidator extends Validator {
default CreationValidator and(CreationValidator then) {
diff --git a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java
index 804b663..0b17202 100644
--- a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java
+++ b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java
@@ -28,6 +28,12 @@
import com.flowingcode.backendcore.model.ErrorDescription;
import com.flowingcode.backendcore.validation.Validator;
+/**
+ * Validator for deletion operations on entities.
+ *
+ * @param the type being validated
+ * @author mlopez
+ */
public interface DeletionValidator extends Validator {
default DeletionValidator and(DeletionValidator then) {
diff --git a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java
index 26d7611..84dfce6 100644
--- a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java
+++ b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java
@@ -10,6 +10,12 @@
import com.flowingcode.backendcore.service.validation.UpdateValidator;
import com.flowingcode.backendcore.validation.Validator;
+/**
+ * Validator that enforces invariants during both creation and update operations.
+ *
+ * @param the type being validated
+ * @author jgodoy
+ */
public interface InvariantValidator extends CreationValidator, UpdateValidator {
default InvariantValidator and(InvariantValidator then) {
diff --git a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java
index 8662771..7f8c81a 100644
--- a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java
+++ b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java
@@ -6,6 +6,11 @@
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+/**
+ * Enumeration of service validation kinds corresponding to different operation types.
+ *
+ * @author mlopez
+ */
@RequiredArgsConstructor
public enum ServiceValidationKind implements ValidationKind {
diff --git a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java
index 9d092c1..7dd3f95 100644
--- a/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java
+++ b/backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java
@@ -28,6 +28,12 @@
import com.flowingcode.backendcore.model.ErrorDescription;
import com.flowingcode.backendcore.validation.Validator;
+/**
+ * Validator for update operations on entities.
+ *
+ * @param the type being validated
+ * @author mlopez
+ */
public interface UpdateValidator extends Validator {
default UpdateValidator and(UpdateValidator then) {
diff --git a/backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java b/backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
index 46f2f62..3362255 100644
--- a/backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
+++ b/backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
@@ -13,6 +13,13 @@
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
+/**
+ * Spring Data JPA {@code Specification} that applies a model
+ * {@code Constraint}.
+ *
+ * @param the entity type
+ * @author jgodoy
+ */
@SuppressWarnings("serial")
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
final class ConstraintSpecification implements Specification {
diff --git a/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java b/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
index 52c1c8f..3a047fa 100644
--- a/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
+++ b/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
@@ -44,6 +44,12 @@
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
+/**
+ * JPA implementation of {@code ConstraintTransformer} for converting
+ * model constraints into JPA {@code Predicate} instances.
+ *
+ * @author jgodoy
+ */
@RequiredArgsConstructor
public class ConstraintTransformerJpaImpl extends ConstraintTransformer {
diff --git a/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java b/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java
index a2ab5e4..c4dc47b 100644
--- a/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java
+++ b/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java
@@ -39,6 +39,14 @@
import com.flowingcode.backendcore.model.Identifiable;
import com.flowingcode.backendcore.model.QuerySpec;
+/**
+ * DAO support interface that converts between source domain type S and persistent entity type T and provides generic CRUD operations.
+ *
+ * @param the source domain type
+ * @param the persistent entity type
+ * @param the identifier type
+ * @author mlopez
+ */
public interface ConversionJpaDaoSupport, K extends Serializable>
extends CrudDao {
diff --git a/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java b/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java
index 09dad06..bf7b1a5 100644
--- a/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java
+++ b/backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java
@@ -23,6 +23,13 @@
import com.flowingcode.backendcore.model.Identifiable;
+/**
+ * DAO support interface for JPA entities, providing default identity conversions.
+ *
+ * @param the persistent entity type
+ * @param the identifier type
+ * @author mlopez
+ */
public interface JpaDaoSupport, K extends Serializable>
extends ConversionJpaDaoSupport {
diff --git a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java
index a7d6613..7b634c2 100644
--- a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java
+++ b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java
@@ -19,6 +19,13 @@
*/
package com.flowingcode.backendcore.dao;
+/**
+ * Data access interface for creating entities of type T.
+ *
+ * @param the entity type
+ * @param the identifier type returned upon creation
+ * @author mlopez
+ */
public interface CreationDao {
K save(T entity);
diff --git a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java
index d49110e..1909496 100644
--- a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java
+++ b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java
@@ -19,7 +19,14 @@
*/
package com.flowingcode.backendcore.dao;
+/**
+ * Generic CRUD data access interface combining create, retrieve, update, and delete operations.
+ *
+ * @param the entity type
+ * @param the identifier type
+ * @author mlopez
+ */
public interface CrudDao
- extends CreationDao, UpdateDao, DeletionDao, QueryDao {
+ extends CreationDao, UpdateDao, DeletionDao, QueryDao {
}
diff --git a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java
index 52cbceb..566fb62 100644
--- a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java
+++ b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java
@@ -19,6 +19,12 @@
*/
package com.flowingcode.backendcore.dao;
+/**
+ * Data access interface for deleting entities of type T.
+ *
+ * @param the entity type
+ * @author mlopez
+ */
public interface DeletionDao {
void delete(T entity);
diff --git a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java
index 5801439..1fd5039 100644
--- a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java
+++ b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java
@@ -24,6 +24,13 @@
import com.flowingcode.backendcore.model.QuerySpec;
+/**
+ * Data access interface for querying entities of type T identified by keys of type K.
+ *
+ * @param the entity type
+ * @param the identifier type
+ * @author mlopez
+ */
public interface QueryDao {
Optional findById(K id);
diff --git a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java
index c1cae9f..b7fc177 100644
--- a/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java
+++ b/backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java
@@ -19,6 +19,12 @@
*/
package com.flowingcode.backendcore.dao;
+/**
+ * Data access interface for updating entities of type T.
+ *
+ * @param the entity type
+ * @author mlopez
+ */
public interface UpdateDao {
void update(T entity);
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java
index 337e2d1..ad72fed 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java
@@ -21,6 +21,11 @@
import com.flowingcode.backendcore.model.constraints.NegatedConstraint;
+/**
+ * General constraint interface representing a filtering criterion for queries.
+ *
+ * @author jgodoy
+ */
public interface Constraint {
default Constraint not() {
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java
index 5096e51..ed6f858 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java
@@ -26,6 +26,11 @@
import lombok.NonNull;
import lombok.experimental.FieldDefaults;
+/**
+ * Constraint that checks if an attribute's value falls between two inclusive bounds.
+ *
+ * @author jgodoy
+ */
@Getter
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public class AttributeBetweenConstraint implements AttributeConstraint {
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
index a47378b..b5508aa 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
@@ -21,6 +21,11 @@
import com.flowingcode.backendcore.model.Constraint;
+/**
+ * Specialization of {@code Constraint} that applies to entity attributes.
+ *
+ * @author jgodoy
+ */
public interface AttributeConstraint extends Constraint {
String getAttribute();
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java
index ec2a1cd..cdcc4fd 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java
@@ -25,6 +25,11 @@
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
+/**
+ * Constraint that performs case-insensitive pattern matching (ILIKE) on an attribute.
+ *
+ * @author jgodoy
+ */
@Getter
@RequiredArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java
index aed5f21..a572381 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java
@@ -27,6 +27,11 @@
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
+/**
+ * Constraint that checks if the specified attribute's value is contained within a given collection.
+ *
+ * @author jgodoy
+ */
@Getter
@RequiredArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java
index a343c19..d0d2874 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java
@@ -25,6 +25,11 @@
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
+/**
+ * Constraint for SQL LIKE pattern matching on an attribute.
+ *
+ * @author jgodoy
+ */
@Getter
@RequiredArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java
index 99b355d..504084d 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java
@@ -6,6 +6,11 @@
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
+/**
+ * Constraint indicating that the specified attribute's value must be null.
+ *
+ * @author jgodoy
+ */
@Getter
@RequiredArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java
index da3292a..337b893 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java
@@ -25,6 +25,11 @@
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
+/**
+ * Constraint for relational comparison on an attribute using a comparison operator.
+ *
+ * @author jgodoy
+ */
@Getter
@RequiredArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java
index 3630eda..c6f5e02 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java
@@ -27,6 +27,11 @@
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
+/**
+ * Constraint that negates another constraint.
+ *
+ * @author jgodoy
+ */
@Getter
@RequiredArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java
index 6663723..f8bee15 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java
@@ -21,6 +21,11 @@
import com.flowingcode.backendcore.model.Constraint;
+/**
+ * Interface defining relational comparison operators for attribute constraints.
+ *
+ * @author jgodoy
+ */
public interface RelationalConstraint extends Constraint {
String EQ = "=";
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java
index 8d45d1b..a97bbbe 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java
@@ -5,6 +5,11 @@
import com.flowingcode.backendcore.exception.BaseException;
import com.flowingcode.backendcore.model.ErrorDescription;
+/**
+ * Thrown to indicate validation failures during create operations.
+ *
+ * @author mlopez
+ */
@SuppressWarnings("serial")
public class CreationValidationException extends ValidationException {
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java
index 7736b54..b70826f 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java
@@ -5,6 +5,11 @@
import com.flowingcode.backendcore.exception.BaseException;
import com.flowingcode.backendcore.model.ErrorDescription;
+/**
+ * Thrown to indicate validation failures during delete operations.
+ *
+ * @author mlopez
+ */
@SuppressWarnings("serial")
public class DeletionValidationException extends ValidationException {
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java
index 1b8174f..8336e28 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java
@@ -5,6 +5,11 @@
import com.flowingcode.backendcore.exception.BaseException;
import com.flowingcode.backendcore.model.ErrorDescription;
+/**
+ * Thrown to indicate validation failures during update operations.
+ *
+ * @author mlopez
+ */
@SuppressWarnings("serial")
public class UpdateValidationException extends ValidationException {
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java
index 4b96157..7f5e90c 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java
@@ -1,6 +1,11 @@
package com.flowingcode.backendcore.validation;
+/**
+ * Defines the type of validator used for service validation steps.
+ *
+ * @author mlopez
+ */
public interface ValidationKind {
@SuppressWarnings("rawtypes")
diff --git a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
index dcc6504..21deb1c 100644
--- a/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
+++ b/backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
@@ -23,6 +23,12 @@
import java.util.List;
import java.util.stream.Collectors;
+/**
+ * Provides validation support utilities for collecting and executing validators on an object.
+ *
+ * @param the type under validation
+ * @author mlopez
+ */
public interface ValidationSupport {
List> getValidators();