(vision) SCS/DDD

This commit is contained in:
2025-07-14 22:02:46 +02:00
parent f4b11b220d
commit 6e52015f46
54 changed files with 8849 additions and 262 deletions
@@ -0,0 +1,37 @@
package at.mocode.validation
import kotlinx.serialization.Serializable
/**
* Represents the result of a validation operation
*/
@Serializable
sealed class ValidationResult {
@Serializable
object Valid : ValidationResult()
@Serializable
data class Invalid(val errors: List<ValidationError>) : ValidationResult()
fun isValid(): Boolean = this is Valid
fun isInvalid(): Boolean = this is Invalid
}
/**
* Represents a single validation error
*/
@Serializable
data class ValidationError(
val field: String,
val message: String,
val code: String? = null
)
/**
* Exception thrown when validation fails
*/
class ValidationException(
val validationResult: ValidationResult.Invalid
) : IllegalArgumentException(
"Validation failed: ${validationResult.errors.joinToString(", ") { "${it.field}: ${it.message}" }}"
)