Skip to content

Instantly share code, notes, and snippets.

@saurabhnanda
Created August 23, 2017 07:35
Show Gist options
  • Save saurabhnanda/7866caf670c8af884fe7286fe28020d7 to your computer and use it in GitHub Desktop.
Save saurabhnanda/7866caf670c8af884fe7286fe28020d7 to your computer and use it in GitHub Desktop.
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
module AutoGenerated.Classes.CreatedAt where
import Control.Lens
class HasCreatedAt s a | s -> a where createdAt :: Lens' s a
-- Every database column has an individual `HasX` typeclass file to ensure that all lenses implement
-- the same typeclass and can be used with any database model/record
{-# LANGUAGE TemplateHaskell, DeriveGeneric, MultiParamTypeClasses, FunctionalDependencies #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
module AutoGenerated.Models.Job
(
module AutoGenerated.Models.Job, module AutoGenerated.PrimaryKeys.ClientId, module AutoGenerated.PrimaryKeys.JobId, module AutoGenerated.PrimaryKeys.UserId
, module AutoGenerated.Classes.Attempts, module AutoGenerated.Classes.ClientId, module AutoGenerated.Classes.CreatedAt, module AutoGenerated.Classes.Id, module AutoGenerated.Classes.LastError, module AutoGenerated.Classes.LockedAt, module AutoGenerated.Classes.LockedBy, module AutoGenerated.Classes.Payload, module AutoGenerated.Classes.RunAt, module AutoGenerated.Classes.Status, module AutoGenerated.Classes.UpdatedAt, module AutoGenerated.Classes.UserId
)
where
import GHC.Generics
import AutoGenerated.Classes.Attempts
import AutoGenerated.Classes.ClientId
import AutoGenerated.Classes.CreatedAt
import AutoGenerated.Classes.Id
import AutoGenerated.Classes.LastError
import AutoGenerated.Classes.LockedAt
import AutoGenerated.Classes.LockedBy
import AutoGenerated.Classes.Payload
import AutoGenerated.Classes.RunAt
import AutoGenerated.Classes.Status
import AutoGenerated.Classes.UpdatedAt
import AutoGenerated.Classes.UserId
import Prelude hiding (id)
import AutoGenerated.PrimaryKeys.ClientId
import Data.Time
import AutoGenerated.PrimaryKeys.JobId
import Data.Aeson
import Foundation.Types.Time
import Data.Text
import AutoGenerated.PrimaryKeys.UserId
import Opaleye
data JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy = JobPoly {_jobId :: id, _jobCreatedAt :: createdAt, _jobUpdatedAt :: updatedAt, _jobClientId :: clientId, _jobUserId :: userId, _jobStatus :: status, _jobPayload :: payload, _jobLastError :: lastError, _jobAttempts :: attempts, _jobRunAt :: runAt, _jobLockedAt :: lockedAt, _jobLockedBy :: lockedBy} deriving (Eq, Show, Generic)
--makeLensesWith abbreviatedFields ''JobPoly
type Job = JobPoly (JobId) (UTCTime) (UTCTime) (ClientId) (UserId) (Text) (Value) (Maybe (Value)) (Integer) (ZonedTime) (Maybe (ZonedTime)) (Maybe (Text))
type JobPGR = JobPoly (Maybe (Column (PGInt4))) (Maybe (Column (PGTimestamptz))) (Maybe (Column (PGTimestamptz))) (Column (Nullable (PGInt4))) (Column (Nullable (PGInt4))) (Column (PGText)) (Column (PGJsonb)) (Column (Nullable (PGJsonb))) (Maybe (Column (PGInt4))) (Maybe (Column (PGTimestamptz))) (Column (Nullable (PGTimestamptz))) (Column (Nullable (PGText)))
instance HasId (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) id where
{-# INLINE id #-}
id fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly dragon createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) (fctor id)
instance HasCreatedAt (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) createdAt where
{-# INLINE createdAt #-}
createdAt fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id dragon updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) (fctor createdAt)
instance HasUpdatedAt (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) updatedAt where
{-# INLINE updatedAt #-}
updatedAt fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt dragon clientId userId status payload lastError attempts runAt lockedAt lockedBy) (fctor updatedAt)
instance HasClientId (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) clientId where
{-# INLINE clientId #-}
clientId fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt dragon userId status payload lastError attempts runAt lockedAt lockedBy) (fctor clientId)
instance HasUserId (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) userId where
{-# INLINE userId #-}
userId fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId dragon status payload lastError attempts runAt lockedAt lockedBy) (fctor userId)
instance HasStatus (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) status where
{-# INLINE status #-}
status fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId userId dragon payload lastError attempts runAt lockedAt lockedBy) (fctor status)
instance HasPayload (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) payload where
{-# INLINE payload #-}
payload fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId userId status dragon lastError attempts runAt lockedAt lockedBy) (fctor payload)
instance HasLastError (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) lastError where
{-# INLINE lastError #-}
lastError fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId userId status payload dragon attempts runAt lockedAt lockedBy) (fctor lastError)
instance HasAttempts (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) attempts where
{-# INLINE attempts #-}
attempts fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId userId status payload lastError dragon runAt lockedAt lockedBy) (fctor attempts)
instance HasRunAt (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) runAt where
{-# INLINE runAt #-}
runAt fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId userId status payload lastError attempts dragon lockedAt lockedBy) (fctor runAt)
instance HasLockedAt (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) lockedAt where
{-# INLINE lockedAt #-}
lockedAt fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt dragon lockedBy) (fctor lockedAt)
instance HasLockedBy (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) lockedBy where
{-# INLINE lockedBy #-}
lockedBy fctor (JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt lockedBy) = fmap (\ dragon -> JobPoly id createdAt updatedAt clientId userId status payload lastError attempts runAt lockedAt dragon) (fctor lockedBy)
{-# LANGUAGE TemplateHaskell, DeriveGeneric, MultiParamTypeClasses, FunctionalDependencies #-}
module AutoGenerated.PrimaryKeys.JobId (JobId) where
import Foundation.Types.PrimaryKey
data Job
type JobId = PK Job
{-# LANGUAGE TemplateHaskell, DeriveGeneric, MultiParamTypeClasses, FunctionalDependencies #-}
module AutoGenerated.PrimaryKeys.UserId (UserId) where
import Foundation.Types.PrimaryKey
data User
type UserId = PK User
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment