Date, Time, Datetime?
In the API we have
* https://ash-hq.org/docs/module/ash/latest/ash-type-date
* https://ash-hq.org/docs/module/ash/latest/ash-type-time
* https://ash-hq.org/docs/module/ash/latest/ash-type-utcdatetime
It looks as if both
:date and :time default to UTC/ISO calendar, so I got a little confused by the naming.
I wonder: is the fact it's UTC actually part of the type? Or might it make sense just to have :date, :time, and :datetime, and specify that the representation of these is in UTC/ISO, in the same way that :string specifies the type and UTF-8 is the representation?2 Replies
Yes, I think it would be better to have
:datetime, exactly as you say 🙂
We mostly copied the ecto patterns, and that type has existed for a long time, well before our type constraints system was as evolved as it is now
so attribute :due_date, :datetime, constraints: [timezone: :utc] (that would likely be the default)
This might be a good thing to do for the 3.0 release in the next few months
we will have a few small breaking changes for that release, so it will be good to group them up
If you'd like to open an issue on ash core I can tag it appropriately/put it on the 3.0 milestone, or I can open one 🙂Assuming ash core is ash-project/ash, 'tis done.