module Database.SQLDeps.Types where
import GHC.Generics
import Data.Hashable
type FieldName = (TableName, String)
type TableName = String
data FieldVal
= IntVal Int
| StrVal String
deriving (Eq, Ord, Generic, Show)
data Select
= Select [FieldName] [TableName] [Filter]
deriving (Eq, Ord, Generic, Show)
data Upsert
= Update TableName [(FieldName, FieldVal)] [Filter]
| Insert TableName [(FieldName, FieldVal)]
deriving (Eq, Ord, Generic, Show)
data Filter
= LargerThan FieldName FieldVal
| SmallerThan FieldName FieldVal
| EqualTo FieldName FieldVal
deriving (Eq, Ord, Generic, Show)
instance Hashable Select
instance Hashable FieldVal
instance Hashable Upsert
instance Hashable Filter