packages feed

shomei-core-0.2.0.0: src/Shomei/Account/Notification/Domain.hs

-- | Notifications emitted by account lifecycle workflows.
module Shomei.Account.Notification.Domain
  ( Notification (..),
  )
where

import Shomei.Account.Email.Domain (Email)
import Shomei.Account.OneTimeToken.Domain (OneTimeToken)
import Shomei.Prelude

data Notification
  = EmailVerificationRequested
      { email :: !Email,
        token :: !OneTimeToken,
        expiresAt :: !UTCTime
      }
  | PasswordResetRequested
      { email :: !Email,
        token :: !OneTimeToken,
        expiresAt :: !UTCTime
      }
  deriving stock (Generic, Eq, Show)
  deriving anyclass (FromJSON, ToJSON)