27 lines
645 B
PHP
27 lines
645 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace App\Dto;
|
||
|
|
|
||
|
|
use Symfony\Component\Validator\Constraints as Assert;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Validated payload for POST /api/todos.
|
||
|
|
*
|
||
|
|
* Auto-generated alongside TodoController's create() action.
|
||
|
|
* #[MapRequestPayload] in the controller turns malformed JSON or any
|
||
|
|
* Assert violation here into an RFC 7807 problem+json response — no
|
||
|
|
* controller-level if-isset boilerplate, no silent type coercion.
|
||
|
|
*/
|
||
|
|
final readonly class CreateTodoDto
|
||
|
|
{
|
||
|
|
public function __construct(
|
||
|
|
#[Assert\NotBlank]
|
||
|
|
#[Assert\Length(max: 255)]
|
||
|
|
public string $title,
|
||
|
|
public bool $done = false,
|
||
|
|
) {
|
||
|
|
}
|
||
|
|
}
|