54 lines
1.2 KiB
Haskell
54 lines
1.2 KiB
Haskell
module TeaCleaner.Types
|
|
( Activity(..)
|
|
, User(..)
|
|
) where
|
|
|
|
import TeaCleaner.Options (jsonOptions)
|
|
import Data.Int (Int64)
|
|
import Data.Text (Text)
|
|
import qualified Data.Aeson.TH as Aeson
|
|
import Data.Time (ZonedTime(..))
|
|
|
|
data User = User
|
|
{ id :: Int64
|
|
, login :: Text
|
|
, loginName :: Text
|
|
, fullName :: Text
|
|
, email :: Text
|
|
, avatarUrl :: Text
|
|
, language :: Text
|
|
, isAdmin :: Bool
|
|
, lastLogin :: ZonedTime
|
|
, created :: ZonedTime
|
|
, restricted :: Bool
|
|
, active :: Bool
|
|
, prohibitLogin :: Bool
|
|
, location :: Text
|
|
, website :: Text
|
|
, description :: Text
|
|
, visibility :: Text
|
|
, followersCount :: Int
|
|
, followingCount :: Int
|
|
, starredReposCount :: Int
|
|
, username :: Text
|
|
} deriving (Show)
|
|
|
|
$(Aeson.deriveJSON jsonOptions ''User)
|
|
|
|
data Activity = Activity
|
|
{ actUserId :: Int64
|
|
-- , comment Comment
|
|
, commentId :: Int64
|
|
, content :: Text
|
|
, created :: ZonedTime
|
|
, id :: Int64
|
|
, isPrivate :: Bool
|
|
, opType :: Text
|
|
, refName :: Text
|
|
-- repo Repository{...}
|
|
, repoId :: Int64
|
|
, userId :: Int64
|
|
} deriving (Show)
|
|
|
|
$(Aeson.deriveJSON jsonOptions ''Activity)
|