{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE StrictData #-}

module Octane.Type.RemoteId (RemoteId(..)) where

import qualified Control.DeepSeq as DeepSeq
import qualified Data.Aeson as Aeson
import qualified GHC.Generics as Generics
import qualified Octane.Type.Text as Text
import qualified Octane.Type.Word64 as Word64


data RemoteId
    = SteamId Word64.Word64
    | PlayStationId Text.Text
    | SplitscreenId (Maybe Int)
    | XboxId Word64.Word64
    deriving (Eq, Generics.Generic, Show)

instance DeepSeq.NFData RemoteId where

instance Aeson.ToJSON RemoteId where