Comments 3
DTO - это набор данных, которые можно однозначно сериализовать (ок, маршализировать) на одном конце и десериализовать на другом. Никаких требований к "примитивности" нет.
Дата, время, деньги - сериализуются однозначно. Использоаать в DTO можно.
DateTimeImmutable
, безусловно, не является примитивным типом, потому что при создании его инстанса обрабатывается предоставленный аргумент строкового конструктора и выдает ошибку, если он не является адекватным. Или, что еще хуже, преобразует его в значение, которое имеет смысл, но может больше не соответствовать намерениям субъекта, создавшего значение.
int
, безусловно, не является примитивным типом, потому что при создании его инстанса обрабатывается предоставленный аргумент строкового конструктора и выдает ошибку, если он не является адекватным. Или, что еще хуже, преобразует его в значение, которое имеет смысл, но может больше не соответствовать намерениям субъекта, создавшего значение.
Можно ли считать DateTimeImmutable примитивным типом?