You may find this one useful .
And keep in mind that validation is everywhere. There is nothing wrong with the fact that the DTO uses UI authentication (for example, filling in the necessary fields, date and time in the correct format, etc.) And domain objects - checking the domain (for example, the account has money before the operation is canceled).
You cannot create universal validation. The best you can do is put it in the appropriate places.
, . DTO . , 2 , -, -, .