improve accuracy of timestamps

This commit is contained in:
2025-04-05 03:15:44 +00:00
parent 7096e6abeb
commit da717013de
14 changed files with 87 additions and 42 deletions

View File

@ -11,13 +11,13 @@ defmodule Memex.Accounts.Invite do
field :name, :string
field :token, :string
field :uses_left, :integer, default: nil
field :disabled_at, :naive_datetime
field :disabled_at, :utc_datetime_usec
belongs_to :created_by, User
has_many :users, User
timestamps()
timestamps(type: :utc_datetime_usec)
end
@type t :: %__MODULE__{
@ -25,12 +25,12 @@ defmodule Memex.Accounts.Invite do
name: String.t(),
token: token(),
uses_left: integer() | nil,
disabled_at: NaiveDateTime.t(),
disabled_at: DateTime.t(),
created_by: User.t() | nil | Association.NotLoaded.t(),
created_by_id: User.id() | nil,
users: [User.t()] | Association.NotLoaded.t(),
inserted_at: NaiveDateTime.t(),
updated_at: NaiveDateTime.t()
inserted_at: DateTime.t(),
updated_at: DateTime.t()
}
@type new_invite :: %__MODULE__{}
@type id :: UUID.t()

View File

@ -123,7 +123,7 @@ defmodule Memex.Accounts.Invites do
end
defp decrement_invite_changeset(%Invite{uses_left: 1} = invite) do
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
now = DateTime.utc_now()
invite |> Invite.update_changeset(%{uses_left: 0, disabled_at: now})
end

View File

@ -21,7 +21,7 @@ defmodule Memex.Accounts.User do
field :email, :string
field :password, :string, virtual: true
field :hashed_password, :string
field :confirmed_at, :naive_datetime
field :confirmed_at, :utc_datetime_usec
field :role, Ecto.Enum, values: [:admin, :user], default: :user
field :locale, :string
@ -29,7 +29,7 @@ defmodule Memex.Accounts.User do
belongs_to :invite, Invite
timestamps()
timestamps(type: :utc_datetime_usec)
end
@type t :: %User{
@ -37,14 +37,14 @@ defmodule Memex.Accounts.User do
email: String.t(),
password: String.t(),
hashed_password: String.t(),
confirmed_at: NaiveDateTime.t(),
confirmed_at: DateTime.t(),
role: role(),
locale: String.t() | nil,
created_invites: [Invite.t()] | Association.NotLoaded.t(),
invite: Invite.t() | nil | Association.NotLoaded.t(),
invite_id: Invite.id() | nil,
inserted_at: NaiveDateTime.t(),
updated_at: NaiveDateTime.t()
inserted_at: DateTime.t(),
updated_at: DateTime.t()
}
@type new_user :: %User{}
@type id :: UUID.t()
@ -166,7 +166,7 @@ defmodule Memex.Accounts.User do
"""
@spec confirm_changeset(t() | changeset()) :: changeset()
def confirm_changeset(user_or_changeset) do
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
now = DateTime.utc_now()
user_or_changeset |> change(confirmed_at: now)
end

View File

@ -32,7 +32,7 @@ defmodule Memex.Accounts.UserToken do
sent_to: String.t(),
user: User.t() | Association.NotLoaded.t(),
user_id: User.id() | nil,
inserted_at: NaiveDateTime.t()
inserted_at: DateTime.t()
}
@type new_user_token :: %__MODULE__{}
@type id :: UUID.t()