{-# LANGUAGE OverloadedStrings, DeriveGeneric #-}

module Phizzle.Types (PhishTank(..), PhishTails(..)) where
    
import Data.Aeson
import Data.Text (Text)
import GHC.Generics

data PhishTank  = PhishTank { phish_id :: !Text, url :: !Text, phish_detail_url :: !Text, submission_time :: !Text, verified :: !Text,
                             verification_time :: !Text, online :: !Text, details :: [PhishTails], target :: !Text } deriving (Show, Generic)

data PhishTails = PhishTails { ip_address :: !Text, cidr_block :: !Text, announcing_network :: !Text, rir :: !Text, country :: !Text,
                               detail_time :: !Text } deriving (Show, Generic)

instance FromJSON PhishTank
instance ToJSON PhishTank
instance FromJSON PhishTails
instance ToJSON PhishTails