{-# LANGUAGE DeriveGeneric #-}

module Server.DTOs.Logs (Logs (..)) where

import GHC.Generics (Generic)

import Data.Aeson (FromJSON, ToJSON)
import Data.OpenApi (ToSchema)
import Data.Time (UTCTime)
import Data.Vector (Vector)
import GHC.Int (Int64)
import Logging.Logs (LogMessage)

data Logs = Logs
    { Logs -> Vector LogMessage
messages :: Vector LogMessage
    , Logs -> Maybe UTCTime
offset :: Maybe UTCTime
    , Logs -> Int64
limit :: Int64
    }
    deriving ((forall x. Logs -> Rep Logs x)
-> (forall x. Rep Logs x -> Logs) -> Generic Logs
forall x. Rep Logs x -> Logs
forall x. Logs -> Rep Logs x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Logs -> Rep Logs x
from :: forall x. Logs -> Rep Logs x
$cto :: forall x. Rep Logs x -> Logs
to :: forall x. Rep Logs x -> Logs
Generic)

instance ToJSON Logs

instance FromJSON Logs

instance ToSchema Logs