module Model.Activity.Types
( ActivityTarget(..)
, Activity(..)
) where
import qualified Data.ByteString as BS
import Model.Audit.Types
import Model.Id.Types
import Model.Release.Types
import Model.Party.Types
import Model.Authorize.Types
import Model.Volume.Types
import Model.VolumeAccess.Types
import Model.Container.Types
import Model.Segment
import Model.Slot.Types
import Model.Asset.Types
data ActivityTarget
= ActivityParty { activityPartyRow :: !PartyRow }
| ActivityAccount { activityAccountId :: !(Id Party)
, activityAccountEmail :: !BS.ByteString
, activityAccountPassword :: !(Maybe BS.ByteString)
}
| ActivityAuthorize { activityAuthorize :: !Authorize }
| ActivityVolume { activityVolumeRow :: !VolumeRow }
| ActivityAccess { activityAccess :: !VolumeAccess }
| ActivityContainer { activityContainer :: !ContainerRow }
| ActivityRelease { activitySlotId :: !SlotId
, activityRelease :: !Release
}
| ActivityAsset { activityAssetRow :: !AssetRow }
| ActivityAssetSlot { activityAssetId :: !(Id Asset)
, activitySlotId :: !SlotId }
| ActivityAssetAndSlot { activityAssetRow :: !AssetRow
, activitySlotId :: !SlotId }
| ActivityExcerpt { activityAssetId :: !(Id Asset)
, activitySegment :: !Segment
, activityExcerptRelease :: !(Maybe Release)
}
data Activity = Activity
{ activityAudit :: !Audit
, activityTarget :: !ActivityTarget
, activityPrev :: Maybe ActivityTarget
, activityReplace :: Maybe Asset
, activityTranscode :: Maybe Asset
}