{-# LANGUAGE DeriveDataTypeable #-} module Hcompta.Model.Filter where import Data.Data import Data.Typeable () import qualified Hcompta.Model.Account as Account import qualified Hcompta.Model.Amount as Amount import qualified Hcompta.Model.Date as Date import qualified Hcompta.Model.Tag as Tag data T = Account SComp Account.Name | AccountTag SComp String (Maybe (SComp, String)) | Amount (NComp, NAbsComp) Amount.T | And T T | Any | Balance (NComp, NAbsComp) Amount.T | Commodity SComp String | Date Date.Span | Date2 Date.Span | Depth NComp Int | Description SComp String | None | Not T | Or T T | Real Bool | Status Bool | Tag SComp String (Maybe (SComp, String)) deriving (Data, Eq, Show, Typeable) data Context = Context { context_day :: Date.Day } deriving (Data, Eq, Show, Typeable) data NComp = NLt | NLtEq | NGt | NGtEq | NEq deriving (Data, Eq, Show, Typeable) type NAbsComp = Bool data SComp = SEq | SRegexp deriving (Data, Eq, Show, Typeable)