{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# OPTIONS_GHC -fno-warn-ambiguous-fields #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}

module WikiMusic.Beam.Artist where

import Data.Map qualified as Map
import Data.UUID qualified as UUID
import Database.Beam
import Optics
import Relude
import WikiMusic.Beam.Util
import WikiMusic.Model.Artist
import WikiMusic.Protolude

data ArtistT f = Artist'
  { forall (f :: * -> *). ArtistT f -> C f Text
identifier :: C f Text,
    forall (f :: * -> *). ArtistT f -> C f Text
displayName :: C f Text,
    forall (f :: * -> *). ArtistT f -> C f Text
createdBy :: C f Text,
    forall (f :: * -> *). ArtistT f -> C f Int64
visibilityStatus :: C f Int64,
    forall (f :: * -> *). ArtistT f -> C f (Maybe Text)
approvedBy :: C f (Maybe Text),
    forall (f :: * -> *). ArtistT f -> C f UTCTime
createdAt :: C f UTCTime,
    forall (f :: * -> *). ArtistT f -> C f (Maybe UTCTime)
lastEditedAt :: C f (Maybe UTCTime),
    forall (f :: * -> *). ArtistT f -> C f Int64
viewCount :: C f Int64,
    forall (f :: * -> *). ArtistT f -> C f (Maybe Text)
description :: C f (Maybe Text)
  }
  deriving ((forall x. ArtistT f -> Rep (ArtistT f) x)
-> (forall x. Rep (ArtistT f) x -> ArtistT f)
-> Generic (ArtistT f)
forall x. Rep (ArtistT f) x -> ArtistT f
forall x. ArtistT f -> Rep (ArtistT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x. Rep (ArtistT f) x -> ArtistT f
forall (f :: * -> *) x. ArtistT f -> Rep (ArtistT f) x
$cfrom :: forall (f :: * -> *) x. ArtistT f -> Rep (ArtistT f) x
from :: forall x. ArtistT f -> Rep (ArtistT f) x
$cto :: forall (f :: * -> *) x. Rep (ArtistT f) x -> ArtistT f
to :: forall x. Rep (ArtistT f) x -> ArtistT f
Generic, TableSkeleton ArtistT
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> ArtistT f -> ArtistT g -> m (ArtistT h))
-> TableSkeleton ArtistT -> Beamable ArtistT
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistT f -> ArtistT g -> m (ArtistT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistT f -> ArtistT g -> m (ArtistT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistT f -> ArtistT g -> m (ArtistT h)
$ctblSkeleton :: TableSkeleton ArtistT
tblSkeleton :: TableSkeleton ArtistT
Beamable)

makeFieldLabelsNoPrefix ''ArtistT

type Artist' = ArtistT Identity

instance Table ArtistT where
  data PrimaryKey ArtistT f = ArtistId (Columnar f Text) deriving ((forall x. PrimaryKey ArtistT f -> Rep (PrimaryKey ArtistT f) x)
-> (forall x. Rep (PrimaryKey ArtistT f) x -> PrimaryKey ArtistT f)
-> Generic (PrimaryKey ArtistT f)
forall x. Rep (PrimaryKey ArtistT f) x -> PrimaryKey ArtistT f
forall x. PrimaryKey ArtistT f -> Rep (PrimaryKey ArtistT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (PrimaryKey ArtistT f) x -> PrimaryKey ArtistT f
forall (f :: * -> *) x.
PrimaryKey ArtistT f -> Rep (PrimaryKey ArtistT f) x
$cfrom :: forall (f :: * -> *) x.
PrimaryKey ArtistT f -> Rep (PrimaryKey ArtistT f) x
from :: forall x. PrimaryKey ArtistT f -> Rep (PrimaryKey ArtistT f) x
$cto :: forall (f :: * -> *) x.
Rep (PrimaryKey ArtistT f) x -> PrimaryKey ArtistT f
to :: forall x. Rep (PrimaryKey ArtistT f) x -> PrimaryKey ArtistT f
Generic, TableSkeleton (PrimaryKey ArtistT)
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> PrimaryKey ArtistT f
 -> PrimaryKey ArtistT g
 -> m (PrimaryKey ArtistT h))
-> TableSkeleton (PrimaryKey ArtistT)
-> Beamable (PrimaryKey ArtistT)
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistT f
-> PrimaryKey ArtistT g
-> m (PrimaryKey ArtistT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistT f
-> PrimaryKey ArtistT g
-> m (PrimaryKey ArtistT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistT f
-> PrimaryKey ArtistT g
-> m (PrimaryKey ArtistT h)
$ctblSkeleton :: TableSkeleton (PrimaryKey ArtistT)
tblSkeleton :: TableSkeleton (PrimaryKey ArtistT)
Beamable)
  primaryKey :: forall (column :: * -> *).
ArtistT column -> PrimaryKey ArtistT column
primaryKey = Columnar column Text -> PrimaryKey ArtistT column
forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistT f
ArtistId (Columnar column Text -> PrimaryKey ArtistT column)
-> (ArtistT column -> Columnar column Text)
-> ArtistT column
-> PrimaryKey ArtistT column
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ArtistT column
-> Optic' A_Lens NoIx (ArtistT column) (Columnar column Text)
-> Columnar column Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx (ArtistT column) (Columnar column Text)
#identifier)

fromArtistPk :: PrimaryKey ArtistT f -> Columnar f Text
fromArtistPk :: forall (f :: * -> *). PrimaryKey ArtistT f -> Columnar f Text
fromArtistPk (ArtistId Columnar f Text
i) = Columnar f Text
i

toArtist :: Artist' -> ExternalSources -> (UUID, Artist)
toArtist :: Artist' -> ExternalSources -> (UUID, Artist)
toArtist Artist'
x ExternalSources
ex =
  ( Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ Artist'
x Artist' -> Optic' A_Lens NoIx Artist' Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' Text
#identifier,
    Artist
      { $sel:identifier:Artist :: UUID
identifier = Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ Artist'
x Artist' -> Optic' A_Lens NoIx Artist' Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' Text
#identifier,
        $sel:displayName:Artist :: Text
displayName = Artist'
x Artist' -> Optic' A_Lens NoIx Artist' Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' Text
#displayName,
        $sel:createdBy:Artist :: UUID
createdBy = Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ Artist'
x Artist' -> Optic' A_Lens NoIx Artist' Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' Text
#createdBy,
        $sel:visibilityStatus:Artist :: Int
visibilityStatus = Int64 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int64 -> Int) -> Int64 -> Int
forall a b. (a -> b) -> a -> b
$ Artist'
x Artist' -> Optic' A_Lens NoIx Artist' Int64 -> Int64
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' Int64
#visibilityStatus,
        $sel:approvedBy:Artist :: Maybe UUID
approvedBy = (Text -> UUID) -> Maybe Text -> Maybe UUID
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> UUID
textToUUID) (Artist'
x Artist' -> Optic' A_Lens NoIx Artist' (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' (Maybe Text)
#approvedBy),
        $sel:createdAt:Artist :: UTCTime
createdAt = Artist'
x Artist' -> Optic' A_Lens NoIx Artist' UTCTime -> UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' UTCTime
#createdAt,
        $sel:lastEditedAt:Artist :: Maybe UTCTime
lastEditedAt = Artist'
x Artist'
-> Optic' A_Lens NoIx Artist' (Maybe UTCTime) -> Maybe UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' (Maybe UTCTime)
#lastEditedAt,
        $sel:viewCount:Artist :: Int
viewCount = Int64 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int64 -> Int) -> Int64 -> Int
forall a b. (a -> b) -> a -> b
$ Artist'
x Artist' -> Optic' A_Lens NoIx Artist' Int64 -> Int64
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' Int64
#viewCount,
        $sel:description:Artist :: Maybe Text
description = Artist'
x Artist' -> Optic' A_Lens NoIx Artist' (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist' (Maybe Text)
#description,
        $sel:artworks:Artist :: Map UUID ArtistArtwork
artworks = Map UUID ArtistArtwork
forall k a. Map k a
Map.empty,
        $sel:comments:Artist :: [ThreadRender ArtistComment]
comments = [],
        $sel:opinions:Artist :: Map UUID ArtistOpinion
opinions = Map UUID ArtistOpinion
forall k a. Map k a
Map.empty,
        $sel:spotifyUrl:Artist :: Maybe Text
spotifyUrl = ExternalSources
ex ExternalSources
-> Optic' A_Lens NoIx ExternalSources (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ExternalSources (Maybe Text)
#spotifyUrl,
        $sel:youtubeUrl:Artist :: Maybe Text
youtubeUrl = ExternalSources
ex ExternalSources
-> Optic' A_Lens NoIx ExternalSources (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ExternalSources (Maybe Text)
#youtubeUrl,
        $sel:soundcloudUrl:Artist :: Maybe Text
soundcloudUrl = ExternalSources
ex ExternalSources
-> Optic' A_Lens NoIx ExternalSources (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ExternalSources (Maybe Text)
#soundcloudUrl,
        $sel:wikipediaUrl:Artist :: Maybe Text
wikipediaUrl = ExternalSources
ex ExternalSources
-> Optic' A_Lens NoIx ExternalSources (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ExternalSources (Maybe Text)
#wikipediaUrl
      }
  )

toPersistenceArtist :: Artist -> Artist'
toPersistenceArtist :: Artist -> Artist'
toPersistenceArtist Artist
x =
  Artist'
    { $sel:identifier:Artist' :: C Identity Text
identifier = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ Artist
x Artist -> Optic' A_Lens NoIx Artist UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist UUID
#identifier,
      $sel:displayName:Artist' :: C Identity Text
displayName = Artist
x Artist -> Optic' A_Lens NoIx Artist Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist Text
#displayName,
      $sel:createdBy:Artist' :: C Identity Text
createdBy = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ Artist
x Artist -> Optic' A_Lens NoIx Artist UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist UUID
#createdBy,
      $sel:visibilityStatus:Artist' :: C Identity Int64
visibilityStatus = Int -> C Identity Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> C Identity Int64) -> Int -> C Identity Int64
forall a b. (a -> b) -> a -> b
$ Artist
x Artist -> Optic' A_Lens NoIx Artist Int -> Int
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist Int
#visibilityStatus,
      $sel:approvedBy:Artist' :: C Identity (Maybe Text)
approvedBy = (UUID -> Text) -> Maybe UUID -> Maybe Text
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (UUID -> Text
UUID.toText) (Artist
x Artist -> Optic' A_Lens NoIx Artist (Maybe UUID) -> Maybe UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe UUID)
#approvedBy),
      $sel:createdAt:Artist' :: C Identity UTCTime
createdAt = Artist
x Artist -> Optic' A_Lens NoIx Artist UTCTime -> UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist UTCTime
#createdAt,
      $sel:lastEditedAt:Artist' :: C Identity (Maybe UTCTime)
lastEditedAt = Artist
x Artist
-> Optic' A_Lens NoIx Artist (Maybe UTCTime) -> Maybe UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe UTCTime)
#lastEditedAt,
      $sel:viewCount:Artist' :: C Identity Int64
viewCount = Int -> C Identity Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> C Identity Int64) -> Int -> C Identity Int64
forall a b. (a -> b) -> a -> b
$ Artist
x Artist -> Optic' A_Lens NoIx Artist Int -> Int
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist Int
#viewCount,
      $sel:description:Artist' :: C Identity (Maybe Text)
description = Artist
x Artist -> Optic' A_Lens NoIx Artist (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe Text)
#description
    }

data ArtistCommentT f = ArtistComment'
  { forall (f :: * -> *). ArtistCommentT f -> C f Text
identifier :: C f Text,
    forall (f :: * -> *). ArtistCommentT f -> C f (Maybe Text)
parentIdentifier :: C f (Maybe Text),
    forall (f :: * -> *). ArtistCommentT f -> PrimaryKey ArtistT f
artistIdentifier :: PrimaryKey ArtistT f,
    forall (f :: * -> *). ArtistCommentT f -> C f Text
createdBy :: C f Text,
    forall (f :: * -> *). ArtistCommentT f -> C f Int64
visibilityStatus :: C f Int64,
    forall (f :: * -> *). ArtistCommentT f -> C f Text
contents :: C f Text,
    forall (f :: * -> *). ArtistCommentT f -> C f (Maybe Text)
approvedBy :: C f (Maybe Text),
    forall (f :: * -> *). ArtistCommentT f -> C f UTCTime
createdAt :: C f UTCTime,
    forall (f :: * -> *). ArtistCommentT f -> C f (Maybe UTCTime)
lastEditedAt :: C f (Maybe UTCTime)
  }
  deriving ((forall x. ArtistCommentT f -> Rep (ArtistCommentT f) x)
-> (forall x. Rep (ArtistCommentT f) x -> ArtistCommentT f)
-> Generic (ArtistCommentT f)
forall x. Rep (ArtistCommentT f) x -> ArtistCommentT f
forall x. ArtistCommentT f -> Rep (ArtistCommentT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (ArtistCommentT f) x -> ArtistCommentT f
forall (f :: * -> *) x.
ArtistCommentT f -> Rep (ArtistCommentT f) x
$cfrom :: forall (f :: * -> *) x.
ArtistCommentT f -> Rep (ArtistCommentT f) x
from :: forall x. ArtistCommentT f -> Rep (ArtistCommentT f) x
$cto :: forall (f :: * -> *) x.
Rep (ArtistCommentT f) x -> ArtistCommentT f
to :: forall x. Rep (ArtistCommentT f) x -> ArtistCommentT f
Generic, TableSkeleton ArtistCommentT
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> ArtistCommentT f -> ArtistCommentT g -> m (ArtistCommentT h))
-> TableSkeleton ArtistCommentT -> Beamable ArtistCommentT
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistCommentT f -> ArtistCommentT g -> m (ArtistCommentT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistCommentT f -> ArtistCommentT g -> m (ArtistCommentT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistCommentT f -> ArtistCommentT g -> m (ArtistCommentT h)
$ctblSkeleton :: TableSkeleton ArtistCommentT
tblSkeleton :: TableSkeleton ArtistCommentT
Beamable)

type ArtistComment' = ArtistCommentT Identity

instance Table ArtistCommentT where
  data PrimaryKey ArtistCommentT f = ArtistCommentId (Columnar f Text) deriving ((forall x.
 PrimaryKey ArtistCommentT f -> Rep (PrimaryKey ArtistCommentT f) x)
-> (forall x.
    Rep (PrimaryKey ArtistCommentT f) x -> PrimaryKey ArtistCommentT f)
-> Generic (PrimaryKey ArtistCommentT f)
forall x.
Rep (PrimaryKey ArtistCommentT f) x -> PrimaryKey ArtistCommentT f
forall x.
PrimaryKey ArtistCommentT f -> Rep (PrimaryKey ArtistCommentT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (PrimaryKey ArtistCommentT f) x -> PrimaryKey ArtistCommentT f
forall (f :: * -> *) x.
PrimaryKey ArtistCommentT f -> Rep (PrimaryKey ArtistCommentT f) x
$cfrom :: forall (f :: * -> *) x.
PrimaryKey ArtistCommentT f -> Rep (PrimaryKey ArtistCommentT f) x
from :: forall x.
PrimaryKey ArtistCommentT f -> Rep (PrimaryKey ArtistCommentT f) x
$cto :: forall (f :: * -> *) x.
Rep (PrimaryKey ArtistCommentT f) x -> PrimaryKey ArtistCommentT f
to :: forall x.
Rep (PrimaryKey ArtistCommentT f) x -> PrimaryKey ArtistCommentT f
Generic, TableSkeleton (PrimaryKey ArtistCommentT)
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> PrimaryKey ArtistCommentT f
 -> PrimaryKey ArtistCommentT g
 -> m (PrimaryKey ArtistCommentT h))
-> TableSkeleton (PrimaryKey ArtistCommentT)
-> Beamable (PrimaryKey ArtistCommentT)
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistCommentT f
-> PrimaryKey ArtistCommentT g
-> m (PrimaryKey ArtistCommentT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistCommentT f
-> PrimaryKey ArtistCommentT g
-> m (PrimaryKey ArtistCommentT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistCommentT f
-> PrimaryKey ArtistCommentT g
-> m (PrimaryKey ArtistCommentT h)
$ctblSkeleton :: TableSkeleton (PrimaryKey ArtistCommentT)
tblSkeleton :: TableSkeleton (PrimaryKey ArtistCommentT)
Beamable)
  primaryKey :: forall (column :: * -> *).
ArtistCommentT column -> PrimaryKey ArtistCommentT column
primaryKey = Columnar column Text -> PrimaryKey ArtistCommentT column
forall (f :: * -> *).
Columnar f Text -> PrimaryKey ArtistCommentT f
ArtistCommentId (Columnar column Text -> PrimaryKey ArtistCommentT column)
-> (ArtistCommentT column -> Columnar column Text)
-> ArtistCommentT column
-> PrimaryKey ArtistCommentT column
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ArtistCommentT column
-> Optic'
     A_Lens NoIx (ArtistCommentT column) (Columnar column Text)
-> Columnar column Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx (ArtistCommentT column) (Columnar column Text)
#identifier)

makeFieldLabelsNoPrefix ''ArtistCommentT

toArtistComment :: ArtistComment' -> (UUID, ArtistComment)
toArtistComment :: ArtistComment' -> (UUID, ArtistComment)
toArtistComment ArtistComment'
x =
  ( Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ ArtistComment'
x ArtistComment' -> Optic' A_Lens NoIx ArtistComment' Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistComment' Text
#identifier,
    ArtistComment
      { $sel:artistIdentifier:ArtistComment :: UUID
artistIdentifier = Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ PrimaryKey ArtistT Identity -> C Identity Text
forall (f :: * -> *). PrimaryKey ArtistT f -> Columnar f Text
fromArtistPk (PrimaryKey ArtistT Identity -> C Identity Text)
-> PrimaryKey ArtistT Identity -> C Identity Text
forall a b. (a -> b) -> a -> b
$ ArtistComment'
x ArtistComment'
-> Optic' A_Lens NoIx ArtistComment' (PrimaryKey ArtistT Identity)
-> PrimaryKey ArtistT Identity
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistComment' (PrimaryKey ArtistT Identity)
#artistIdentifier,
        $sel:comment:ArtistComment :: Comment
comment = ArtistComment' -> Comment
forall {k1} {k2} {k3} {k4} {k5} {k6} {k7} {k8} {a} {s}.
(Is k1 A_Getter, Is k2 A_Getter, Is k3 A_Getter, Is k4 A_Getter,
 Is k5 A_Getter, Is k6 A_Getter, Is k7 A_Getter, Is k8 A_Getter,
 Integral a, LabelOptic "contents" k7 s s Text Text,
 LabelOptic "identifier" k5 s s Text Text,
 LabelOptic "createdBy" k6 s s Text Text,
 LabelOptic "visibilityStatus" k3 s s a a,
 LabelOptic "approvedBy" k2 s s (Maybe Text) (Maybe Text),
 LabelOptic "createdAt" k8 s s UTCTime UTCTime,
 LabelOptic "lastEditedAt" k1 s s (Maybe UTCTime) (Maybe UTCTime),
 LabelOptic "parentIdentifier" k4 s s (Maybe Text) (Maybe Text)) =>
s -> Comment
fromPersistenceComment ArtistComment'
x
      }
  )

toPersistenceArtistComment :: ArtistComment -> ArtistComment'
toPersistenceArtistComment :: ArtistComment -> ArtistComment'
toPersistenceArtistComment ArtistComment
x =
  ArtistComment'
    { $sel:identifier:ArtistComment' :: C Identity Text
identifier = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistComment
x ArtistComment -> Optic' A_Lens NoIx ArtistComment UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic A_Lens NoIx Comment Comment UUID UUID
-> Optic' A_Lens NoIx ArtistComment UUID
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment UUID UUID
#identifier,
      $sel:parentIdentifier:ArtistComment' :: C Identity (Maybe Text)
parentIdentifier = (UUID -> Text) -> Maybe UUID -> Maybe Text
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap UUID -> Text
UUID.toText (ArtistComment
x ArtistComment
-> Optic' A_Lens NoIx ArtistComment (Maybe UUID) -> Maybe UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic A_Lens NoIx Comment Comment (Maybe UUID) (Maybe UUID)
-> Optic' A_Lens NoIx ArtistComment (Maybe UUID)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment (Maybe UUID) (Maybe UUID)
#parentIdentifier),
      $sel:artistIdentifier:ArtistComment' :: PrimaryKey ArtistT Identity
artistIdentifier = Text -> PrimaryKey ArtistT Identity
C Identity Text -> PrimaryKey ArtistT Identity
forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistT f
ArtistId (Text -> PrimaryKey ArtistT Identity)
-> (UUID -> Text) -> UUID -> PrimaryKey ArtistT Identity
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UUID -> Text
UUID.toText (UUID -> PrimaryKey ArtistT Identity)
-> UUID -> PrimaryKey ArtistT Identity
forall a b. (a -> b) -> a -> b
$ ArtistComment
x ArtistComment -> Optic' A_Lens NoIx ArtistComment UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistComment UUID
#artistIdentifier,
      $sel:createdBy:ArtistComment' :: C Identity Text
createdBy = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistComment
x ArtistComment -> Optic' A_Lens NoIx ArtistComment UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic A_Lens NoIx Comment Comment UUID UUID
-> Optic' A_Lens NoIx ArtistComment UUID
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment UUID UUID
#createdBy,
      $sel:visibilityStatus:ArtistComment' :: C Identity Int64
visibilityStatus = Int -> C Identity Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> C Identity Int64) -> Int -> C Identity Int64
forall a b. (a -> b) -> a -> b
$ ArtistComment
x ArtistComment -> Optic' A_Lens NoIx ArtistComment Int -> Int
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic A_Lens NoIx Comment Comment Int Int
-> Optic' A_Lens NoIx ArtistComment Int
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment Int Int
#visibilityStatus,
      $sel:contents:ArtistComment' :: C Identity Text
contents = ArtistComment
x ArtistComment -> Optic' A_Lens NoIx ArtistComment Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic A_Lens NoIx Comment Comment Text Text
-> Optic' A_Lens NoIx ArtistComment Text
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment Text Text
#contents,
      $sel:approvedBy:ArtistComment' :: C Identity (Maybe Text)
approvedBy = (UUID -> Text) -> Maybe UUID -> Maybe Text
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (UUID -> Text
UUID.toText) (ArtistComment
x ArtistComment
-> Optic' A_Lens NoIx ArtistComment (Maybe UUID) -> Maybe UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic A_Lens NoIx Comment Comment (Maybe UUID) (Maybe UUID)
-> Optic' A_Lens NoIx ArtistComment (Maybe UUID)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment (Maybe UUID) (Maybe UUID)
#approvedBy),
      $sel:createdAt:ArtistComment' :: C Identity UTCTime
createdAt = ArtistComment
x ArtistComment
-> Optic' A_Lens NoIx ArtistComment UTCTime -> UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic A_Lens NoIx Comment Comment UTCTime UTCTime
-> Optic' A_Lens NoIx ArtistComment UTCTime
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment UTCTime UTCTime
#createdAt,
      $sel:lastEditedAt:ArtistComment' :: C Identity (Maybe UTCTime)
lastEditedAt = ArtistComment
x ArtistComment
-> Optic' A_Lens NoIx ArtistComment (Maybe UTCTime)
-> Maybe UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
#comment Optic A_Lens NoIx ArtistComment ArtistComment Comment Comment
-> Optic
     A_Lens NoIx Comment Comment (Maybe UTCTime) (Maybe UTCTime)
-> Optic' A_Lens NoIx ArtistComment (Maybe UTCTime)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Comment Comment (Maybe UTCTime) (Maybe UTCTime)
#lastEditedAt
    }

data ArtistArtworkT f = ArtistArtwork'
  { forall (f :: * -> *). ArtistArtworkT f -> C f Text
identifier :: C f Text,
    forall (f :: * -> *). ArtistArtworkT f -> PrimaryKey ArtistT f
artistIdentifier :: PrimaryKey ArtistT f,
    forall (f :: * -> *). ArtistArtworkT f -> C f Text
createdBy :: C f Text,
    forall (f :: * -> *). ArtistArtworkT f -> C f Int64
visibilityStatus :: C f Int64,
    forall (f :: * -> *). ArtistArtworkT f -> C f (Maybe Text)
approvedBy :: C f (Maybe Text),
    forall (f :: * -> *). ArtistArtworkT f -> C f Text
contentUrl :: C f Text,
    forall (f :: * -> *). ArtistArtworkT f -> C f (Maybe Text)
contentCaption :: C f (Maybe Text),
    forall (f :: * -> *). ArtistArtworkT f -> C f Int64
orderValue :: C f Int64,
    forall (f :: * -> *). ArtistArtworkT f -> C f UTCTime
createdAt :: C f UTCTime,
    forall (f :: * -> *). ArtistArtworkT f -> C f (Maybe UTCTime)
lastEditedAt :: C f (Maybe UTCTime)
  }
  deriving ((forall x. ArtistArtworkT f -> Rep (ArtistArtworkT f) x)
-> (forall x. Rep (ArtistArtworkT f) x -> ArtistArtworkT f)
-> Generic (ArtistArtworkT f)
forall x. Rep (ArtistArtworkT f) x -> ArtistArtworkT f
forall x. ArtistArtworkT f -> Rep (ArtistArtworkT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (ArtistArtworkT f) x -> ArtistArtworkT f
forall (f :: * -> *) x.
ArtistArtworkT f -> Rep (ArtistArtworkT f) x
$cfrom :: forall (f :: * -> *) x.
ArtistArtworkT f -> Rep (ArtistArtworkT f) x
from :: forall x. ArtistArtworkT f -> Rep (ArtistArtworkT f) x
$cto :: forall (f :: * -> *) x.
Rep (ArtistArtworkT f) x -> ArtistArtworkT f
to :: forall x. Rep (ArtistArtworkT f) x -> ArtistArtworkT f
Generic, TableSkeleton ArtistArtworkT
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> ArtistArtworkT f -> ArtistArtworkT g -> m (ArtistArtworkT h))
-> TableSkeleton ArtistArtworkT -> Beamable ArtistArtworkT
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistArtworkT f -> ArtistArtworkT g -> m (ArtistArtworkT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistArtworkT f -> ArtistArtworkT g -> m (ArtistArtworkT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistArtworkT f -> ArtistArtworkT g -> m (ArtistArtworkT h)
$ctblSkeleton :: TableSkeleton ArtistArtworkT
tblSkeleton :: TableSkeleton ArtistArtworkT
Beamable)

type ArtistArtwork' = ArtistArtworkT Identity

instance Table ArtistArtworkT where
  data PrimaryKey ArtistArtworkT f = ArtistArtworkId (Columnar f Text) deriving ((forall x.
 PrimaryKey ArtistArtworkT f -> Rep (PrimaryKey ArtistArtworkT f) x)
-> (forall x.
    Rep (PrimaryKey ArtistArtworkT f) x -> PrimaryKey ArtistArtworkT f)
-> Generic (PrimaryKey ArtistArtworkT f)
forall x.
Rep (PrimaryKey ArtistArtworkT f) x -> PrimaryKey ArtistArtworkT f
forall x.
PrimaryKey ArtistArtworkT f -> Rep (PrimaryKey ArtistArtworkT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (PrimaryKey ArtistArtworkT f) x -> PrimaryKey ArtistArtworkT f
forall (f :: * -> *) x.
PrimaryKey ArtistArtworkT f -> Rep (PrimaryKey ArtistArtworkT f) x
$cfrom :: forall (f :: * -> *) x.
PrimaryKey ArtistArtworkT f -> Rep (PrimaryKey ArtistArtworkT f) x
from :: forall x.
PrimaryKey ArtistArtworkT f -> Rep (PrimaryKey ArtistArtworkT f) x
$cto :: forall (f :: * -> *) x.
Rep (PrimaryKey ArtistArtworkT f) x -> PrimaryKey ArtistArtworkT f
to :: forall x.
Rep (PrimaryKey ArtistArtworkT f) x -> PrimaryKey ArtistArtworkT f
Generic, TableSkeleton (PrimaryKey ArtistArtworkT)
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> PrimaryKey ArtistArtworkT f
 -> PrimaryKey ArtistArtworkT g
 -> m (PrimaryKey ArtistArtworkT h))
-> TableSkeleton (PrimaryKey ArtistArtworkT)
-> Beamable (PrimaryKey ArtistArtworkT)
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistArtworkT f
-> PrimaryKey ArtistArtworkT g
-> m (PrimaryKey ArtistArtworkT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistArtworkT f
-> PrimaryKey ArtistArtworkT g
-> m (PrimaryKey ArtistArtworkT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistArtworkT f
-> PrimaryKey ArtistArtworkT g
-> m (PrimaryKey ArtistArtworkT h)
$ctblSkeleton :: TableSkeleton (PrimaryKey ArtistArtworkT)
tblSkeleton :: TableSkeleton (PrimaryKey ArtistArtworkT)
Beamable)
  primaryKey :: forall (column :: * -> *).
ArtistArtworkT column -> PrimaryKey ArtistArtworkT column
primaryKey = Columnar column Text -> PrimaryKey ArtistArtworkT column
forall (f :: * -> *).
Columnar f Text -> PrimaryKey ArtistArtworkT f
ArtistArtworkId (Columnar column Text -> PrimaryKey ArtistArtworkT column)
-> (ArtistArtworkT column -> Columnar column Text)
-> ArtistArtworkT column
-> PrimaryKey ArtistArtworkT column
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ArtistArtworkT column
-> Optic'
     A_Lens NoIx (ArtistArtworkT column) (Columnar column Text)
-> Columnar column Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx (ArtistArtworkT column) (Columnar column Text)
#identifier)

makeFieldLabelsNoPrefix ''ArtistArtworkT

toArtistArtwork :: ArtistArtwork' -> (UUID, ArtistArtwork)
toArtistArtwork :: ArtistArtwork' -> (UUID, ArtistArtwork)
toArtistArtwork ArtistArtwork'
x =
  ( Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ ArtistArtwork'
x ArtistArtwork' -> Optic' A_Lens NoIx ArtistArtwork' Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistArtwork' Text
#identifier,
    ArtistArtwork
      { $sel:artistIdentifier:ArtistArtwork :: UUID
artistIdentifier = Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ PrimaryKey ArtistT Identity -> C Identity Text
forall (f :: * -> *). PrimaryKey ArtistT f -> Columnar f Text
fromArtistPk (PrimaryKey ArtistT Identity -> C Identity Text)
-> PrimaryKey ArtistT Identity -> C Identity Text
forall a b. (a -> b) -> a -> b
$ ArtistArtwork'
x ArtistArtwork'
-> Optic' A_Lens NoIx ArtistArtwork' (PrimaryKey ArtistT Identity)
-> PrimaryKey ArtistT Identity
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistArtwork' (PrimaryKey ArtistT Identity)
#artistIdentifier,
        $sel:artwork:ArtistArtwork :: Artwork
artwork = ArtistArtwork' -> Artwork
forall {k1} {k2} {k3} {k4} {k5} {k6} {k7} {k8} {k9} {a1} {a2} {s}.
(Is k1 A_Getter, Is k2 A_Getter, Is k3 A_Getter, Is k4 A_Getter,
 Is k5 A_Getter, Is k6 A_Getter, Is k7 A_Getter, Is k8 A_Getter,
 Is k9 A_Getter, Integral a1, Integral a2,
 LabelOptic "identifier" k5 s s Text Text,
 LabelOptic "createdBy" k6 s s Text Text,
 LabelOptic "visibilityStatus" k4 s s a2 a2,
 LabelOptic "approvedBy" k7 s s (Maybe Text) (Maybe Text),
 LabelOptic "contentUrl" k3 s s Text Text,
 LabelOptic "contentCaption" k8 s s (Maybe Text) (Maybe Text),
 LabelOptic "orderValue" k2 s s a1 a1,
 LabelOptic "createdAt" k9 s s UTCTime UTCTime,
 LabelOptic
   "lastEditedAt" k1 s s (Maybe UTCTime) (Maybe UTCTime)) =>
s -> Artwork
fromPersistenceArtwork ArtistArtwork'
x
      }
  )

mkArtistArtworkP :: ArtistArtwork -> ArtistArtwork'
mkArtistArtworkP :: ArtistArtwork -> ArtistArtwork'
mkArtistArtworkP ArtistArtwork
x =
  ArtistArtwork'
    { $sel:identifier:ArtistArtwork' :: C Identity Text
identifier = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistArtwork
x ArtistArtwork -> Optic' A_Lens NoIx ArtistArtwork UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork UUID UUID
-> Optic' A_Lens NoIx ArtistArtwork UUID
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork UUID UUID
#identifier,
      $sel:artistIdentifier:ArtistArtwork' :: PrimaryKey ArtistT Identity
artistIdentifier = C Identity Text -> PrimaryKey ArtistT Identity
forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistT f
ArtistId (C Identity Text -> PrimaryKey ArtistT Identity)
-> C Identity Text -> PrimaryKey ArtistT Identity
forall a b. (a -> b) -> a -> b
$ UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistArtwork
x ArtistArtwork -> Optic' A_Lens NoIx ArtistArtwork UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistArtwork UUID
#artistIdentifier,
      $sel:createdBy:ArtistArtwork' :: C Identity Text
createdBy = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistArtwork
x ArtistArtwork -> Optic' A_Lens NoIx ArtistArtwork UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork UUID UUID
-> Optic' A_Lens NoIx ArtistArtwork UUID
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork UUID UUID
#createdBy,
      $sel:visibilityStatus:ArtistArtwork' :: C Identity Int64
visibilityStatus = Int -> C Identity Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> C Identity Int64) -> Int -> C Identity Int64
forall a b. (a -> b) -> a -> b
$ ArtistArtwork
x ArtistArtwork -> Optic' A_Lens NoIx ArtistArtwork Int -> Int
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork Int Int
-> Optic' A_Lens NoIx ArtistArtwork Int
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork Int Int
#visibilityStatus,
      $sel:contentUrl:ArtistArtwork' :: C Identity Text
contentUrl = ArtistArtwork
x ArtistArtwork -> Optic' A_Lens NoIx ArtistArtwork Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork Text Text
-> Optic' A_Lens NoIx ArtistArtwork Text
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork Text Text
#contentUrl,
      $sel:contentCaption:ArtistArtwork' :: C Identity (Maybe Text)
contentCaption = ArtistArtwork
x ArtistArtwork
-> Optic' A_Lens NoIx ArtistArtwork (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork (Maybe Text) (Maybe Text)
-> Optic' A_Lens NoIx ArtistArtwork (Maybe Text)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork (Maybe Text) (Maybe Text)
#contentCaption,
      $sel:orderValue:ArtistArtwork' :: C Identity Int64
orderValue = Int -> C Identity Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> C Identity Int64) -> Int -> C Identity Int64
forall a b. (a -> b) -> a -> b
$ ArtistArtwork
x ArtistArtwork -> Optic' A_Lens NoIx ArtistArtwork Int -> Int
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork Int Int
-> Optic' A_Lens NoIx ArtistArtwork Int
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork Int Int
#orderValue,
      $sel:approvedBy:ArtistArtwork' :: C Identity (Maybe Text)
approvedBy = (UUID -> Text) -> Maybe UUID -> Maybe Text
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (UUID -> Text
UUID.toText) (ArtistArtwork
x ArtistArtwork
-> Optic' A_Lens NoIx ArtistArtwork (Maybe UUID) -> Maybe UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork (Maybe UUID) (Maybe UUID)
-> Optic' A_Lens NoIx ArtistArtwork (Maybe UUID)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork (Maybe UUID) (Maybe UUID)
#approvedBy),
      $sel:createdAt:ArtistArtwork' :: C Identity UTCTime
createdAt = ArtistArtwork
x ArtistArtwork
-> Optic' A_Lens NoIx ArtistArtwork UTCTime -> UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic A_Lens NoIx Artwork Artwork UTCTime UTCTime
-> Optic' A_Lens NoIx ArtistArtwork UTCTime
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork UTCTime UTCTime
#createdAt,
      $sel:lastEditedAt:ArtistArtwork' :: C Identity (Maybe UTCTime)
lastEditedAt = ArtistArtwork
x ArtistArtwork
-> Optic' A_Lens NoIx ArtistArtwork (Maybe UTCTime)
-> Maybe UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
#artwork Optic A_Lens NoIx ArtistArtwork ArtistArtwork Artwork Artwork
-> Optic
     A_Lens NoIx Artwork Artwork (Maybe UTCTime) (Maybe UTCTime)
-> Optic' A_Lens NoIx ArtistArtwork (Maybe UTCTime)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Artwork Artwork (Maybe UTCTime) (Maybe UTCTime)
#lastEditedAt
    }

data ArtistOpinionT f = ArtistOpinion'
  { forall (f :: * -> *). ArtistOpinionT f -> C f Text
identifier :: C f Text,
    forall (f :: * -> *). ArtistOpinionT f -> PrimaryKey ArtistT f
artistIdentifier :: PrimaryKey ArtistT f,
    forall (f :: * -> *). ArtistOpinionT f -> C f Text
createdBy :: C f Text,
    forall (f :: * -> *). ArtistOpinionT f -> C f Bool
isLike :: C f Bool,
    forall (f :: * -> *). ArtistOpinionT f -> C f Bool
isDislike :: C f Bool,
    forall (f :: * -> *). ArtistOpinionT f -> C f UTCTime
createdAt :: C f UTCTime,
    forall (f :: * -> *). ArtistOpinionT f -> C f (Maybe UTCTime)
lastEditedAt :: C f (Maybe UTCTime)
  }
  deriving ((forall x. ArtistOpinionT f -> Rep (ArtistOpinionT f) x)
-> (forall x. Rep (ArtistOpinionT f) x -> ArtistOpinionT f)
-> Generic (ArtistOpinionT f)
forall x. Rep (ArtistOpinionT f) x -> ArtistOpinionT f
forall x. ArtistOpinionT f -> Rep (ArtistOpinionT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (ArtistOpinionT f) x -> ArtistOpinionT f
forall (f :: * -> *) x.
ArtistOpinionT f -> Rep (ArtistOpinionT f) x
$cfrom :: forall (f :: * -> *) x.
ArtistOpinionT f -> Rep (ArtistOpinionT f) x
from :: forall x. ArtistOpinionT f -> Rep (ArtistOpinionT f) x
$cto :: forall (f :: * -> *) x.
Rep (ArtistOpinionT f) x -> ArtistOpinionT f
to :: forall x. Rep (ArtistOpinionT f) x -> ArtistOpinionT f
Generic, TableSkeleton ArtistOpinionT
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> ArtistOpinionT f -> ArtistOpinionT g -> m (ArtistOpinionT h))
-> TableSkeleton ArtistOpinionT -> Beamable ArtistOpinionT
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistOpinionT f -> ArtistOpinionT g -> m (ArtistOpinionT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistOpinionT f -> ArtistOpinionT g -> m (ArtistOpinionT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistOpinionT f -> ArtistOpinionT g -> m (ArtistOpinionT h)
$ctblSkeleton :: TableSkeleton ArtistOpinionT
tblSkeleton :: TableSkeleton ArtistOpinionT
Beamable)

type ArtistOpinion' = ArtistOpinionT Identity

instance Table ArtistOpinionT where
  data PrimaryKey ArtistOpinionT f = ArtistOpinionId (Columnar f Text) deriving ((forall x.
 PrimaryKey ArtistOpinionT f -> Rep (PrimaryKey ArtistOpinionT f) x)
-> (forall x.
    Rep (PrimaryKey ArtistOpinionT f) x -> PrimaryKey ArtistOpinionT f)
-> Generic (PrimaryKey ArtistOpinionT f)
forall x.
Rep (PrimaryKey ArtistOpinionT f) x -> PrimaryKey ArtistOpinionT f
forall x.
PrimaryKey ArtistOpinionT f -> Rep (PrimaryKey ArtistOpinionT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (PrimaryKey ArtistOpinionT f) x -> PrimaryKey ArtistOpinionT f
forall (f :: * -> *) x.
PrimaryKey ArtistOpinionT f -> Rep (PrimaryKey ArtistOpinionT f) x
$cfrom :: forall (f :: * -> *) x.
PrimaryKey ArtistOpinionT f -> Rep (PrimaryKey ArtistOpinionT f) x
from :: forall x.
PrimaryKey ArtistOpinionT f -> Rep (PrimaryKey ArtistOpinionT f) x
$cto :: forall (f :: * -> *) x.
Rep (PrimaryKey ArtistOpinionT f) x -> PrimaryKey ArtistOpinionT f
to :: forall x.
Rep (PrimaryKey ArtistOpinionT f) x -> PrimaryKey ArtistOpinionT f
Generic, TableSkeleton (PrimaryKey ArtistOpinionT)
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> PrimaryKey ArtistOpinionT f
 -> PrimaryKey ArtistOpinionT g
 -> m (PrimaryKey ArtistOpinionT h))
-> TableSkeleton (PrimaryKey ArtistOpinionT)
-> Beamable (PrimaryKey ArtistOpinionT)
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistOpinionT f
-> PrimaryKey ArtistOpinionT g
-> m (PrimaryKey ArtistOpinionT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistOpinionT f
-> PrimaryKey ArtistOpinionT g
-> m (PrimaryKey ArtistOpinionT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistOpinionT f
-> PrimaryKey ArtistOpinionT g
-> m (PrimaryKey ArtistOpinionT h)
$ctblSkeleton :: TableSkeleton (PrimaryKey ArtistOpinionT)
tblSkeleton :: TableSkeleton (PrimaryKey ArtistOpinionT)
Beamable)
  primaryKey :: forall (column :: * -> *).
ArtistOpinionT column -> PrimaryKey ArtistOpinionT column
primaryKey = Columnar column Text -> PrimaryKey ArtistOpinionT column
forall (f :: * -> *).
Columnar f Text -> PrimaryKey ArtistOpinionT f
ArtistOpinionId (Columnar column Text -> PrimaryKey ArtistOpinionT column)
-> (ArtistOpinionT column -> Columnar column Text)
-> ArtistOpinionT column
-> PrimaryKey ArtistOpinionT column
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ArtistOpinionT column
-> Optic'
     A_Lens NoIx (ArtistOpinionT column) (Columnar column Text)
-> Columnar column Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx (ArtistOpinionT column) (Columnar column Text)
#identifier)

makeFieldLabelsNoPrefix ''ArtistOpinionT

toArtistOpinion :: ArtistOpinion' -> (UUID, ArtistOpinion)
toArtistOpinion :: ArtistOpinion' -> (UUID, ArtistOpinion)
toArtistOpinion ArtistOpinion'
x =
  ( Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ ArtistOpinion'
x ArtistOpinion' -> Optic' A_Lens NoIx ArtistOpinion' Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistOpinion' Text
#identifier,
    ArtistOpinion
      { $sel:artistIdentifier:ArtistOpinion :: UUID
artistIdentifier = Text -> UUID
textToUUID (Text -> UUID) -> Text -> UUID
forall a b. (a -> b) -> a -> b
$ PrimaryKey ArtistT Identity -> C Identity Text
forall (f :: * -> *). PrimaryKey ArtistT f -> Columnar f Text
fromArtistPk (PrimaryKey ArtistT Identity -> C Identity Text)
-> PrimaryKey ArtistT Identity -> C Identity Text
forall a b. (a -> b) -> a -> b
$ ArtistOpinion'
x ArtistOpinion'
-> Optic' A_Lens NoIx ArtistOpinion' (PrimaryKey ArtistT Identity)
-> PrimaryKey ArtistT Identity
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistOpinion' (PrimaryKey ArtistT Identity)
#artistIdentifier,
        $sel:opinion:ArtistOpinion :: Opinion
opinion = ArtistOpinion' -> Opinion
forall {k1} {k2} {k3} {k4} {k5} {k6} {s}.
(Is k1 A_Getter, Is k2 A_Getter, Is k3 A_Getter, Is k4 A_Getter,
 Is k5 A_Getter, Is k6 A_Getter,
 LabelOptic "identifier" k4 s s Text Text,
 LabelOptic "createdBy" k3 s s Text Text,
 LabelOptic "createdAt" k6 s s UTCTime UTCTime,
 LabelOptic "lastEditedAt" k1 s s (Maybe UTCTime) (Maybe UTCTime),
 LabelOptic "isLike" k5 s s Bool Bool,
 LabelOptic "isDislike" k2 s s Bool Bool) =>
s -> Opinion
fromPersistenceOpinion ArtistOpinion'
x
      }
  )

data ArtistExternalSourcesT f = ArtistExternalSources'
  { forall (f :: * -> *). ArtistExternalSourcesT f -> C f Text
identifier :: C f Text,
    forall (f :: * -> *).
ArtistExternalSourcesT f -> PrimaryKey ArtistT f
artistIdentifier :: PrimaryKey ArtistT f,
    forall (f :: * -> *). ArtistExternalSourcesT f -> C f Text
createdBy :: C f Text,
    forall (f :: * -> *). ArtistExternalSourcesT f -> C f (Maybe Text)
spotifyUrl :: C f (Maybe Text),
    forall (f :: * -> *). ArtistExternalSourcesT f -> C f (Maybe Text)
youtubeUrl :: C f (Maybe Text),
    forall (f :: * -> *). ArtistExternalSourcesT f -> C f (Maybe Text)
soundcloudUrl :: C f (Maybe Text),
    forall (f :: * -> *). ArtistExternalSourcesT f -> C f (Maybe Text)
wikipediaUrl :: C f (Maybe Text),
    forall (f :: * -> *). ArtistExternalSourcesT f -> C f UTCTime
createdAt :: C f UTCTime,
    forall (f :: * -> *).
ArtistExternalSourcesT f -> C f (Maybe UTCTime)
lastEditedAt :: C f (Maybe UTCTime)
  }
  deriving ((forall x.
 ArtistExternalSourcesT f -> Rep (ArtistExternalSourcesT f) x)
-> (forall x.
    Rep (ArtistExternalSourcesT f) x -> ArtistExternalSourcesT f)
-> Generic (ArtistExternalSourcesT f)
forall x.
Rep (ArtistExternalSourcesT f) x -> ArtistExternalSourcesT f
forall x.
ArtistExternalSourcesT f -> Rep (ArtistExternalSourcesT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (ArtistExternalSourcesT f) x -> ArtistExternalSourcesT f
forall (f :: * -> *) x.
ArtistExternalSourcesT f -> Rep (ArtistExternalSourcesT f) x
$cfrom :: forall (f :: * -> *) x.
ArtistExternalSourcesT f -> Rep (ArtistExternalSourcesT f) x
from :: forall x.
ArtistExternalSourcesT f -> Rep (ArtistExternalSourcesT f) x
$cto :: forall (f :: * -> *) x.
Rep (ArtistExternalSourcesT f) x -> ArtistExternalSourcesT f
to :: forall x.
Rep (ArtistExternalSourcesT f) x -> ArtistExternalSourcesT f
Generic, TableSkeleton ArtistExternalSourcesT
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> ArtistExternalSourcesT f
 -> ArtistExternalSourcesT g
 -> m (ArtistExternalSourcesT h))
-> TableSkeleton ArtistExternalSourcesT
-> Beamable ArtistExternalSourcesT
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistExternalSourcesT f
-> ArtistExternalSourcesT g
-> m (ArtistExternalSourcesT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistExternalSourcesT f
-> ArtistExternalSourcesT g
-> m (ArtistExternalSourcesT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> ArtistExternalSourcesT f
-> ArtistExternalSourcesT g
-> m (ArtistExternalSourcesT h)
$ctblSkeleton :: TableSkeleton ArtistExternalSourcesT
tblSkeleton :: TableSkeleton ArtistExternalSourcesT
Beamable)

type ArtistExternalSources' = ArtistExternalSourcesT Identity

instance Table ArtistExternalSourcesT where
  data PrimaryKey ArtistExternalSourcesT f = ArtistExternalSourcesId (Columnar f Text) deriving ((forall x.
 PrimaryKey ArtistExternalSourcesT f
 -> Rep (PrimaryKey ArtistExternalSourcesT f) x)
-> (forall x.
    Rep (PrimaryKey ArtistExternalSourcesT f) x
    -> PrimaryKey ArtistExternalSourcesT f)
-> Generic (PrimaryKey ArtistExternalSourcesT f)
forall x.
Rep (PrimaryKey ArtistExternalSourcesT f) x
-> PrimaryKey ArtistExternalSourcesT f
forall x.
PrimaryKey ArtistExternalSourcesT f
-> Rep (PrimaryKey ArtistExternalSourcesT f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (PrimaryKey ArtistExternalSourcesT f) x
-> PrimaryKey ArtistExternalSourcesT f
forall (f :: * -> *) x.
PrimaryKey ArtistExternalSourcesT f
-> Rep (PrimaryKey ArtistExternalSourcesT f) x
$cfrom :: forall (f :: * -> *) x.
PrimaryKey ArtistExternalSourcesT f
-> Rep (PrimaryKey ArtistExternalSourcesT f) x
from :: forall x.
PrimaryKey ArtistExternalSourcesT f
-> Rep (PrimaryKey ArtistExternalSourcesT f) x
$cto :: forall (f :: * -> *) x.
Rep (PrimaryKey ArtistExternalSourcesT f) x
-> PrimaryKey ArtistExternalSourcesT f
to :: forall x.
Rep (PrimaryKey ArtistExternalSourcesT f) x
-> PrimaryKey ArtistExternalSourcesT f
Generic, TableSkeleton (PrimaryKey ArtistExternalSourcesT)
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> PrimaryKey ArtistExternalSourcesT f
 -> PrimaryKey ArtistExternalSourcesT g
 -> m (PrimaryKey ArtistExternalSourcesT h))
-> TableSkeleton (PrimaryKey ArtistExternalSourcesT)
-> Beamable (PrimaryKey ArtistExternalSourcesT)
forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistExternalSourcesT f
-> PrimaryKey ArtistExternalSourcesT g
-> m (PrimaryKey ArtistExternalSourcesT h)
forall (table :: (* -> *) -> *).
(forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
 Applicative m =>
 (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
 -> table f -> table g -> m (table h))
-> TableSkeleton table -> Beamable table
$czipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistExternalSourcesT f
-> PrimaryKey ArtistExternalSourcesT g
-> m (PrimaryKey ArtistExternalSourcesT h)
zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *).
Applicative m =>
(forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a))
-> PrimaryKey ArtistExternalSourcesT f
-> PrimaryKey ArtistExternalSourcesT g
-> m (PrimaryKey ArtistExternalSourcesT h)
$ctblSkeleton :: TableSkeleton (PrimaryKey ArtistExternalSourcesT)
tblSkeleton :: TableSkeleton (PrimaryKey ArtistExternalSourcesT)
Beamable)
  primaryKey :: forall (column :: * -> *).
ArtistExternalSourcesT column
-> PrimaryKey ArtistExternalSourcesT column
primaryKey = Columnar column Text -> PrimaryKey ArtistExternalSourcesT column
forall (f :: * -> *).
Columnar f Text -> PrimaryKey ArtistExternalSourcesT f
ArtistExternalSourcesId (Columnar column Text -> PrimaryKey ArtistExternalSourcesT column)
-> (ArtistExternalSourcesT column -> Columnar column Text)
-> ArtistExternalSourcesT column
-> PrimaryKey ArtistExternalSourcesT column
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ArtistExternalSourcesT column
-> Optic'
     A_Lens NoIx (ArtistExternalSourcesT column) (Columnar column Text)
-> Columnar column Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic'
  A_Lens NoIx (ArtistExternalSourcesT column) (Columnar column Text)
#identifier)

makeFieldLabelsNoPrefix ''ArtistExternalSourcesT

toPersistenceArtistExternalContents :: Artist -> UUID -> ArtistExternalSources'
toPersistenceArtistExternalContents :: Artist -> UUID -> ArtistExternalSources'
toPersistenceArtistExternalContents Artist
x UUID
newIdentifier =
  ArtistExternalSources'
    { $sel:identifier:ArtistExternalSources' :: C Identity Text
identifier = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ UUID
newIdentifier,
      $sel:artistIdentifier:ArtistExternalSources' :: PrimaryKey ArtistT Identity
artistIdentifier = C Identity Text -> PrimaryKey ArtistT Identity
forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistT f
ArtistId (C Identity Text -> PrimaryKey ArtistT Identity)
-> C Identity Text -> PrimaryKey ArtistT Identity
forall a b. (a -> b) -> a -> b
$ UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ Artist
x Artist -> Optic' A_Lens NoIx Artist UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist UUID
#identifier,
      $sel:createdBy:ArtistExternalSources' :: C Identity Text
createdBy = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ Artist
x Artist -> Optic' A_Lens NoIx Artist UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist UUID
#createdBy,
      $sel:spotifyUrl:ArtistExternalSources' :: C Identity (Maybe Text)
spotifyUrl = Artist
x Artist -> Optic' A_Lens NoIx Artist (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe Text)
#spotifyUrl,
      $sel:youtubeUrl:ArtistExternalSources' :: C Identity (Maybe Text)
youtubeUrl = Artist
x Artist -> Optic' A_Lens NoIx Artist (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe Text)
#youtubeUrl,
      $sel:soundcloudUrl:ArtistExternalSources' :: C Identity (Maybe Text)
soundcloudUrl = Artist
x Artist -> Optic' A_Lens NoIx Artist (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe Text)
#soundcloudUrl,
      $sel:wikipediaUrl:ArtistExternalSources' :: C Identity (Maybe Text)
wikipediaUrl = Artist
x Artist -> Optic' A_Lens NoIx Artist (Maybe Text) -> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe Text)
#wikipediaUrl,
      $sel:createdAt:ArtistExternalSources' :: C Identity UTCTime
createdAt = Artist
x Artist -> Optic' A_Lens NoIx Artist UTCTime -> UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist UTCTime
#createdAt,
      $sel:lastEditedAt:ArtistExternalSources' :: C Identity (Maybe UTCTime)
lastEditedAt = Artist
x Artist
-> Optic' A_Lens NoIx Artist (Maybe UTCTime) -> Maybe UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx Artist (Maybe UTCTime)
#lastEditedAt
    }

mkArtistExSourcesP :: ArtistExternalSources -> ArtistExternalSources'
mkArtistExSourcesP :: ArtistExternalSources -> ArtistExternalSources'
mkArtistExSourcesP ArtistExternalSources
x =
  ArtistExternalSources'
    { $sel:identifier:ArtistExternalSources' :: C Identity Text
identifier = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources UUID
#identifier,
      $sel:artistIdentifier:ArtistExternalSources' :: PrimaryKey ArtistT Identity
artistIdentifier = C Identity Text -> PrimaryKey ArtistT Identity
forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistT f
ArtistId (C Identity Text -> PrimaryKey ArtistT Identity)
-> C Identity Text -> PrimaryKey ArtistT Identity
forall a b. (a -> b) -> a -> b
$ UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources UUID
#artistIdentifier,
      $sel:createdBy:ArtistExternalSources' :: C Identity Text
createdBy = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources UUID
#createdBy,
      $sel:spotifyUrl:ArtistExternalSources' :: C Identity (Maybe Text)
spotifyUrl = ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
-> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
#spotifyUrl,
      $sel:youtubeUrl:ArtistExternalSources' :: C Identity (Maybe Text)
youtubeUrl = ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
-> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
#youtubeUrl,
      $sel:soundcloudUrl:ArtistExternalSources' :: C Identity (Maybe Text)
soundcloudUrl = ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
-> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
#soundcloudUrl,
      $sel:wikipediaUrl:ArtistExternalSources' :: C Identity (Maybe Text)
wikipediaUrl = ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
-> Maybe Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources (Maybe Text)
#wikipediaUrl,
      $sel:createdAt:ArtistExternalSources' :: C Identity UTCTime
createdAt = ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources UTCTime -> UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources UTCTime
#createdAt,
      $sel:lastEditedAt:ArtistExternalSources' :: C Identity (Maybe UTCTime)
lastEditedAt = ArtistExternalSources
x ArtistExternalSources
-> Optic' A_Lens NoIx ArtistExternalSources (Maybe UTCTime)
-> Maybe UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistExternalSources (Maybe UTCTime)
#lastEditedAt
    }

artistTModification :: ArtistT (FieldModification (TableField ArtistT))
artistTModification :: ArtistT (FieldModification (TableField ArtistT))
artistTModification =
  ArtistT (FieldModification Any)
forall (f :: * -> *) (tbl :: (* -> *) -> *).
Beamable tbl =>
tbl (FieldModification f)
tableModification
    { identifier = "identifier",
      displayName = "display_name",
      createdBy = "created_by",
      visibilityStatus = "visibility_status",
      approvedBy = "approved_by",
      createdAt = "created_at",
      lastEditedAt = "last_edited_at",
      viewCount = "views",
      description = "description"
    }

artistCommentTModification :: ArtistCommentT (FieldModification (TableField ArtistCommentT))
artistCommentTModification :: ArtistCommentT (FieldModification (TableField ArtistCommentT))
artistCommentTModification =
  ArtistCommentT (FieldModification Any)
forall (f :: * -> *) (tbl :: (* -> *) -> *).
Beamable tbl =>
tbl (FieldModification f)
tableModification
    { identifier = "identifier",
      artistIdentifier = ArtistId "artist_identifier",
      parentIdentifier = "parent_identifier",
      createdBy = "created_by",
      visibilityStatus = "visibility_status",
      contents = "contents",
      approvedBy = "approved_by",
      createdAt = "created_at",
      lastEditedAt = "last_edited_at"
    }

artistArtworkTModification :: ArtistArtworkT (FieldModification (TableField ArtistArtworkT))
artistArtworkTModification :: ArtistArtworkT (FieldModification (TableField ArtistArtworkT))
artistArtworkTModification =
  ArtistArtworkT (FieldModification Any)
forall (f :: * -> *) (tbl :: (* -> *) -> *).
Beamable tbl =>
tbl (FieldModification f)
tableModification
    { identifier = "identifier",
      artistIdentifier = ArtistId "artist_identifier",
      createdBy = "created_by",
      visibilityStatus = "visibility_status",
      approvedBy = "approved_by",
      contentUrl = "content_url",
      contentCaption = "content_caption",
      orderValue = "order_value",
      createdAt = "created_at",
      lastEditedAt = "last_edited_at"
    }

artistOpinionTModification :: ArtistOpinionT (FieldModification (TableField ArtistOpinionT))
artistOpinionTModification :: ArtistOpinionT (FieldModification (TableField ArtistOpinionT))
artistOpinionTModification =
  ArtistOpinionT (FieldModification Any)
forall (f :: * -> *) (tbl :: (* -> *) -> *).
Beamable tbl =>
tbl (FieldModification f)
tableModification
    { identifier = "identifier",
      artistIdentifier = ArtistId "artist_identifier",
      createdBy = "created_by",
      isLike = "is_like",
      isDislike = "is_dislike",
      createdAt = "created_at",
      lastEditedAt = "last_edited_at"
    }

artistExternalSourcesTModification :: ArtistExternalSourcesT (FieldModification (TableField ArtistExternalSourcesT))
artistExternalSourcesTModification :: ArtistExternalSourcesT
  (FieldModification (TableField ArtistExternalSourcesT))
artistExternalSourcesTModification =
  ArtistExternalSourcesT (FieldModification Any)
forall (f :: * -> *) (tbl :: (* -> *) -> *).
Beamable tbl =>
tbl (FieldModification f)
tableModification
    { identifier = "identifier",
      artistIdentifier = ArtistId "artist_identifier",
      createdBy = "created_by",
      spotifyUrl = "spotify_url",
      youtubeUrl = "youtube_url",
      soundcloudUrl = "soundcloud_url",
      wikipediaUrl = "wikipedia_url",
      createdAt = "created_at",
      lastEditedAt = "last_edited_at"
    }

mkArtistOpinionP :: ArtistOpinion -> ArtistOpinion'
mkArtistOpinionP :: ArtistOpinion -> ArtistOpinion'
mkArtistOpinionP ArtistOpinion
x =
  ArtistOpinion'
    { $sel:identifier:ArtistOpinion' :: C Identity Text
identifier = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistOpinion
x ArtistOpinion -> Optic' A_Lens NoIx ArtistOpinion UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
#opinion Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
-> Optic A_Lens NoIx Opinion Opinion UUID UUID
-> Optic' A_Lens NoIx ArtistOpinion UUID
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Opinion Opinion UUID UUID
#identifier,
      $sel:artistIdentifier:ArtistOpinion' :: PrimaryKey ArtistT Identity
artistIdentifier = C Identity Text -> PrimaryKey ArtistT Identity
forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistT f
ArtistId (C Identity Text -> PrimaryKey ArtistT Identity)
-> C Identity Text -> PrimaryKey ArtistT Identity
forall a b. (a -> b) -> a -> b
$ UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistOpinion
x ArtistOpinion -> Optic' A_Lens NoIx ArtistOpinion UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic' A_Lens NoIx ArtistOpinion UUID
#artistIdentifier,
      $sel:createdBy:ArtistOpinion' :: C Identity Text
createdBy = UUID -> Text
UUID.toText (UUID -> Text) -> UUID -> Text
forall a b. (a -> b) -> a -> b
$ ArtistOpinion
x ArtistOpinion -> Optic' A_Lens NoIx ArtistOpinion UUID -> UUID
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
#opinion Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
-> Optic A_Lens NoIx Opinion Opinion UUID UUID
-> Optic' A_Lens NoIx ArtistOpinion UUID
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Opinion Opinion UUID UUID
#createdBy,
      $sel:isLike:ArtistOpinion' :: C Identity Bool
isLike = ArtistOpinion
x ArtistOpinion -> Optic' A_Lens NoIx ArtistOpinion Bool -> Bool
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
#opinion Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
-> Optic A_Lens NoIx Opinion Opinion Bool Bool
-> Optic' A_Lens NoIx ArtistOpinion Bool
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Opinion Opinion Bool Bool
#isLike,
      $sel:isDislike:ArtistOpinion' :: C Identity Bool
isDislike = ArtistOpinion
x ArtistOpinion -> Optic' A_Lens NoIx ArtistOpinion Bool -> Bool
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
#opinion Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
-> Optic A_Lens NoIx Opinion Opinion Bool Bool
-> Optic' A_Lens NoIx ArtistOpinion Bool
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Opinion Opinion Bool Bool
#isDislike,
      $sel:createdAt:ArtistOpinion' :: C Identity UTCTime
createdAt = ArtistOpinion
x ArtistOpinion
-> Optic' A_Lens NoIx ArtistOpinion UTCTime -> UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
#opinion Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
-> Optic A_Lens NoIx Opinion Opinion UTCTime UTCTime
-> Optic' A_Lens NoIx ArtistOpinion UTCTime
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Opinion Opinion UTCTime UTCTime
#createdAt,
      $sel:lastEditedAt:ArtistOpinion' :: C Identity (Maybe UTCTime)
lastEditedAt = ArtistOpinion
x ArtistOpinion
-> Optic' A_Lens NoIx ArtistOpinion (Maybe UTCTime)
-> Maybe UTCTime
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
#opinion Optic A_Lens NoIx ArtistOpinion ArtistOpinion Opinion Opinion
-> Optic
     A_Lens NoIx Opinion Opinion (Maybe UTCTime) (Maybe UTCTime)
-> Optic' A_Lens NoIx ArtistOpinion (Maybe UTCTime)
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic A_Lens NoIx Opinion Opinion (Maybe UTCTime) (Maybe UTCTime)
#lastEditedAt
    }