{-# 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-missing-signatures #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module WikiMusic.Beam.Relations where import Data.UUID qualified as UUID import Database.Beam import Optics import WikiMusic.Beam.Artist import WikiMusic.Beam.Genre import WikiMusic.Beam.Song import WikiMusic.Model.Song import WikiMusic.Protolude data SongArtistT f = SongArtist' { forall (f :: * -> *). SongArtistT f -> C f Text identifier :: C f Text, forall (f :: * -> *). SongArtistT f -> PrimaryKey SongT f songIdentifier :: PrimaryKey SongT f, forall (f :: * -> *). SongArtistT f -> PrimaryKey ArtistT f artistIdentifier :: PrimaryKey ArtistT f, forall (f :: * -> *). SongArtistT f -> C f Text createdBy :: C f Text, forall (f :: * -> *). SongArtistT f -> C f UTCTime createdAt :: C f UTCTime } deriving ((forall x. SongArtistT f -> Rep (SongArtistT f) x) -> (forall x. Rep (SongArtistT f) x -> SongArtistT f) -> Generic (SongArtistT f) forall x. Rep (SongArtistT f) x -> SongArtistT f forall x. SongArtistT f -> Rep (SongArtistT f) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall (f :: * -> *) x. Rep (SongArtistT f) x -> SongArtistT f forall (f :: * -> *) x. SongArtistT f -> Rep (SongArtistT f) x $cfrom :: forall (f :: * -> *) x. SongArtistT f -> Rep (SongArtistT f) x from :: forall x. SongArtistT f -> Rep (SongArtistT f) x $cto :: forall (f :: * -> *) x. Rep (SongArtistT f) x -> SongArtistT f to :: forall x. Rep (SongArtistT f) x -> SongArtistT f Generic, TableSkeleton SongArtistT (forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> SongArtistT f -> SongArtistT g -> m (SongArtistT h)) -> TableSkeleton SongArtistT -> Beamable SongArtistT forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> SongArtistT f -> SongArtistT g -> m (SongArtistT 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)) -> SongArtistT f -> SongArtistT g -> m (SongArtistT h) zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> SongArtistT f -> SongArtistT g -> m (SongArtistT h) $ctblSkeleton :: TableSkeleton SongArtistT tblSkeleton :: TableSkeleton SongArtistT Beamable) type SongArtist' = SongArtistT Identity instance Table SongArtistT where data PrimaryKey SongArtistT f = SongArtistId (Columnar f Text) deriving ((forall x. PrimaryKey SongArtistT f -> Rep (PrimaryKey SongArtistT f) x) -> (forall x. Rep (PrimaryKey SongArtistT f) x -> PrimaryKey SongArtistT f) -> Generic (PrimaryKey SongArtistT f) forall x. Rep (PrimaryKey SongArtistT f) x -> PrimaryKey SongArtistT f forall x. PrimaryKey SongArtistT f -> Rep (PrimaryKey SongArtistT f) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall (f :: * -> *) x. Rep (PrimaryKey SongArtistT f) x -> PrimaryKey SongArtistT f forall (f :: * -> *) x. PrimaryKey SongArtistT f -> Rep (PrimaryKey SongArtistT f) x $cfrom :: forall (f :: * -> *) x. PrimaryKey SongArtistT f -> Rep (PrimaryKey SongArtistT f) x from :: forall x. PrimaryKey SongArtistT f -> Rep (PrimaryKey SongArtistT f) x $cto :: forall (f :: * -> *) x. Rep (PrimaryKey SongArtistT f) x -> PrimaryKey SongArtistT f to :: forall x. Rep (PrimaryKey SongArtistT f) x -> PrimaryKey SongArtistT f Generic, TableSkeleton (PrimaryKey SongArtistT) (forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey SongArtistT f -> PrimaryKey SongArtistT g -> m (PrimaryKey SongArtistT h)) -> TableSkeleton (PrimaryKey SongArtistT) -> Beamable (PrimaryKey SongArtistT) forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey SongArtistT f -> PrimaryKey SongArtistT g -> m (PrimaryKey SongArtistT 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 SongArtistT f -> PrimaryKey SongArtistT g -> m (PrimaryKey SongArtistT h) zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey SongArtistT f -> PrimaryKey SongArtistT g -> m (PrimaryKey SongArtistT h) $ctblSkeleton :: TableSkeleton (PrimaryKey SongArtistT) tblSkeleton :: TableSkeleton (PrimaryKey SongArtistT) Beamable) primaryKey :: forall (column :: * -> *). SongArtistT column -> PrimaryKey SongArtistT column primaryKey = Columnar column Text -> PrimaryKey SongArtistT column forall (f :: * -> *). Columnar f Text -> PrimaryKey SongArtistT f SongArtistId (Columnar column Text -> PrimaryKey SongArtistT column) -> (SongArtistT column -> Columnar column Text) -> SongArtistT column -> PrimaryKey SongArtistT column forall b c a. (b -> c) -> (a -> b) -> a -> c . (SongArtistT column -> Optic' A_Lens NoIx (SongArtistT 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 (SongArtistT column) (Columnar column Text) #identifier) makeFieldLabelsNoPrefix ''SongArtistT songArtistTModification :: SongArtistT (FieldModification (TableField SongArtistT)) songArtistTModification :: SongArtistT (FieldModification (TableField SongArtistT)) songArtistTModification = SongArtistT (FieldModification Any) forall (f :: * -> *) (tbl :: (* -> *) -> *). Beamable tbl => tbl (FieldModification f) tableModification { identifier = "identifier", songIdentifier = SongId "song_identifier", artistIdentifier = ArtistId "artist_identifier", createdBy = "created_by", createdAt = "created_at" } data SongGenreT f = SongGenre' { forall (f :: * -> *). SongGenreT f -> C f Text identifier :: C f Text, forall (f :: * -> *). SongGenreT f -> PrimaryKey SongT f songIdentifier :: PrimaryKey SongT f, forall (f :: * -> *). SongGenreT f -> PrimaryKey GenreT f genreIdentifier :: PrimaryKey GenreT f, forall (f :: * -> *). SongGenreT f -> C f Text createdBy :: C f Text, forall (f :: * -> *). SongGenreT f -> C f UTCTime createdAt :: C f UTCTime } deriving ((forall x. SongGenreT f -> Rep (SongGenreT f) x) -> (forall x. Rep (SongGenreT f) x -> SongGenreT f) -> Generic (SongGenreT f) forall x. Rep (SongGenreT f) x -> SongGenreT f forall x. SongGenreT f -> Rep (SongGenreT f) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall (f :: * -> *) x. Rep (SongGenreT f) x -> SongGenreT f forall (f :: * -> *) x. SongGenreT f -> Rep (SongGenreT f) x $cfrom :: forall (f :: * -> *) x. SongGenreT f -> Rep (SongGenreT f) x from :: forall x. SongGenreT f -> Rep (SongGenreT f) x $cto :: forall (f :: * -> *) x. Rep (SongGenreT f) x -> SongGenreT f to :: forall x. Rep (SongGenreT f) x -> SongGenreT f Generic, TableSkeleton SongGenreT (forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> SongGenreT f -> SongGenreT g -> m (SongGenreT h)) -> TableSkeleton SongGenreT -> Beamable SongGenreT forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> SongGenreT f -> SongGenreT g -> m (SongGenreT 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)) -> SongGenreT f -> SongGenreT g -> m (SongGenreT h) zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> SongGenreT f -> SongGenreT g -> m (SongGenreT h) $ctblSkeleton :: TableSkeleton SongGenreT tblSkeleton :: TableSkeleton SongGenreT Beamable) type SongGenre' = SongGenreT Identity instance Table SongGenreT where data PrimaryKey SongGenreT f = SongGenreId (Columnar f Text) deriving ((forall x. PrimaryKey SongGenreT f -> Rep (PrimaryKey SongGenreT f) x) -> (forall x. Rep (PrimaryKey SongGenreT f) x -> PrimaryKey SongGenreT f) -> Generic (PrimaryKey SongGenreT f) forall x. Rep (PrimaryKey SongGenreT f) x -> PrimaryKey SongGenreT f forall x. PrimaryKey SongGenreT f -> Rep (PrimaryKey SongGenreT f) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall (f :: * -> *) x. Rep (PrimaryKey SongGenreT f) x -> PrimaryKey SongGenreT f forall (f :: * -> *) x. PrimaryKey SongGenreT f -> Rep (PrimaryKey SongGenreT f) x $cfrom :: forall (f :: * -> *) x. PrimaryKey SongGenreT f -> Rep (PrimaryKey SongGenreT f) x from :: forall x. PrimaryKey SongGenreT f -> Rep (PrimaryKey SongGenreT f) x $cto :: forall (f :: * -> *) x. Rep (PrimaryKey SongGenreT f) x -> PrimaryKey SongGenreT f to :: forall x. Rep (PrimaryKey SongGenreT f) x -> PrimaryKey SongGenreT f Generic, TableSkeleton (PrimaryKey SongGenreT) (forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey SongGenreT f -> PrimaryKey SongGenreT g -> m (PrimaryKey SongGenreT h)) -> TableSkeleton (PrimaryKey SongGenreT) -> Beamable (PrimaryKey SongGenreT) forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey SongGenreT f -> PrimaryKey SongGenreT g -> m (PrimaryKey SongGenreT 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 SongGenreT f -> PrimaryKey SongGenreT g -> m (PrimaryKey SongGenreT h) zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey SongGenreT f -> PrimaryKey SongGenreT g -> m (PrimaryKey SongGenreT h) $ctblSkeleton :: TableSkeleton (PrimaryKey SongGenreT) tblSkeleton :: TableSkeleton (PrimaryKey SongGenreT) Beamable) primaryKey :: forall (column :: * -> *). SongGenreT column -> PrimaryKey SongGenreT column primaryKey = Columnar column Text -> PrimaryKey SongGenreT column forall (f :: * -> *). Columnar f Text -> PrimaryKey SongGenreT f SongGenreId (Columnar column Text -> PrimaryKey SongGenreT column) -> (SongGenreT column -> Columnar column Text) -> SongGenreT column -> PrimaryKey SongGenreT column forall b c a. (b -> c) -> (a -> b) -> a -> c . (SongGenreT column -> Optic' A_Lens NoIx (SongGenreT 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 (SongGenreT column) (Columnar column Text) #identifier) makeFieldLabelsNoPrefix ''SongGenreT songGenreTModification :: SongGenreT (FieldModification (TableField SongGenreT)) songGenreTModification :: SongGenreT (FieldModification (TableField SongGenreT)) songGenreTModification = SongGenreT (FieldModification Any) forall (f :: * -> *) (tbl :: (* -> *) -> *). Beamable tbl => tbl (FieldModification f) tableModification { identifier = "identifier", songIdentifier = SongId "song_identifier", genreIdentifier = GenreId "genre_identifier", createdBy = "created_by", createdAt = "created_at" } data ArtistGenreT f = ArtistGenre' { forall (f :: * -> *). ArtistGenreT f -> C f Text identifier :: C f Text, forall (f :: * -> *). ArtistGenreT f -> PrimaryKey ArtistT f artistIdentifier :: PrimaryKey ArtistT f, forall (f :: * -> *). ArtistGenreT f -> PrimaryKey GenreT f genreIdentifier :: PrimaryKey GenreT f, forall (f :: * -> *). ArtistGenreT f -> C f Text createdBy :: C f Text, forall (f :: * -> *). ArtistGenreT f -> C f UTCTime createdAt :: C f UTCTime } deriving ((forall x. ArtistGenreT f -> Rep (ArtistGenreT f) x) -> (forall x. Rep (ArtistGenreT f) x -> ArtistGenreT f) -> Generic (ArtistGenreT f) forall x. Rep (ArtistGenreT f) x -> ArtistGenreT f forall x. ArtistGenreT f -> Rep (ArtistGenreT f) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall (f :: * -> *) x. Rep (ArtistGenreT f) x -> ArtistGenreT f forall (f :: * -> *) x. ArtistGenreT f -> Rep (ArtistGenreT f) x $cfrom :: forall (f :: * -> *) x. ArtistGenreT f -> Rep (ArtistGenreT f) x from :: forall x. ArtistGenreT f -> Rep (ArtistGenreT f) x $cto :: forall (f :: * -> *) x. Rep (ArtistGenreT f) x -> ArtistGenreT f to :: forall x. Rep (ArtistGenreT f) x -> ArtistGenreT f Generic, TableSkeleton ArtistGenreT (forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> ArtistGenreT f -> ArtistGenreT g -> m (ArtistGenreT h)) -> TableSkeleton ArtistGenreT -> Beamable ArtistGenreT forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> ArtistGenreT f -> ArtistGenreT g -> m (ArtistGenreT 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)) -> ArtistGenreT f -> ArtistGenreT g -> m (ArtistGenreT h) zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> ArtistGenreT f -> ArtistGenreT g -> m (ArtistGenreT h) $ctblSkeleton :: TableSkeleton ArtistGenreT tblSkeleton :: TableSkeleton ArtistGenreT Beamable) type ArtistGenre' = ArtistGenreT Identity instance Table ArtistGenreT where data PrimaryKey ArtistGenreT f = ArtistGenreId (Columnar f Text) deriving ((forall x. PrimaryKey ArtistGenreT f -> Rep (PrimaryKey ArtistGenreT f) x) -> (forall x. Rep (PrimaryKey ArtistGenreT f) x -> PrimaryKey ArtistGenreT f) -> Generic (PrimaryKey ArtistGenreT f) forall x. Rep (PrimaryKey ArtistGenreT f) x -> PrimaryKey ArtistGenreT f forall x. PrimaryKey ArtistGenreT f -> Rep (PrimaryKey ArtistGenreT f) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall (f :: * -> *) x. Rep (PrimaryKey ArtistGenreT f) x -> PrimaryKey ArtistGenreT f forall (f :: * -> *) x. PrimaryKey ArtistGenreT f -> Rep (PrimaryKey ArtistGenreT f) x $cfrom :: forall (f :: * -> *) x. PrimaryKey ArtistGenreT f -> Rep (PrimaryKey ArtistGenreT f) x from :: forall x. PrimaryKey ArtistGenreT f -> Rep (PrimaryKey ArtistGenreT f) x $cto :: forall (f :: * -> *) x. Rep (PrimaryKey ArtistGenreT f) x -> PrimaryKey ArtistGenreT f to :: forall x. Rep (PrimaryKey ArtistGenreT f) x -> PrimaryKey ArtistGenreT f Generic, TableSkeleton (PrimaryKey ArtistGenreT) (forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey ArtistGenreT f -> PrimaryKey ArtistGenreT g -> m (PrimaryKey ArtistGenreT h)) -> TableSkeleton (PrimaryKey ArtistGenreT) -> Beamable (PrimaryKey ArtistGenreT) forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey ArtistGenreT f -> PrimaryKey ArtistGenreT g -> m (PrimaryKey ArtistGenreT 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 ArtistGenreT f -> PrimaryKey ArtistGenreT g -> m (PrimaryKey ArtistGenreT h) zipBeamFieldsM :: forall (m :: * -> *) (f :: * -> *) (g :: * -> *) (h :: * -> *). Applicative m => (forall a. Columnar' f a -> Columnar' g a -> m (Columnar' h a)) -> PrimaryKey ArtistGenreT f -> PrimaryKey ArtistGenreT g -> m (PrimaryKey ArtistGenreT h) $ctblSkeleton :: TableSkeleton (PrimaryKey ArtistGenreT) tblSkeleton :: TableSkeleton (PrimaryKey ArtistGenreT) Beamable) primaryKey :: forall (column :: * -> *). ArtistGenreT column -> PrimaryKey ArtistGenreT column primaryKey = Columnar column Text -> PrimaryKey ArtistGenreT column forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistGenreT f ArtistGenreId (Columnar column Text -> PrimaryKey ArtistGenreT column) -> (ArtistGenreT column -> Columnar column Text) -> ArtistGenreT column -> PrimaryKey ArtistGenreT column forall b c a. (b -> c) -> (a -> b) -> a -> c . (ArtistGenreT column -> Optic' A_Lens NoIx (ArtistGenreT 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 (ArtistGenreT column) (Columnar column Text) #identifier) makeFieldLabelsNoPrefix ''ArtistGenreT artistGenreTModification :: ArtistGenreT (FieldModification (TableField ArtistGenreT)) artistGenreTModification :: ArtistGenreT (FieldModification (TableField ArtistGenreT)) artistGenreTModification = ArtistGenreT (FieldModification Any) forall (f :: * -> *) (tbl :: (* -> *) -> *). Beamable tbl => tbl (FieldModification f) tableModification { identifier = "identifier", artistIdentifier = ArtistId "artist_identifier", genreIdentifier = GenreId "genre_identifier", createdBy = "created_by", createdAt = "created_at" } mkSongArtistP :: ArtistOfSong -> SongArtist' mkSongArtistP :: ArtistOfSong -> SongArtist' mkSongArtistP ArtistOfSong x = SongArtist' { $sel:identifier:SongArtist' :: C Identity Text identifier = UUID -> Text UUID.toText (UUID -> Text) -> UUID -> Text forall a b. (a -> b) -> a -> b $ ArtistOfSong x ArtistOfSong -> Optic' A_Lens NoIx ArtistOfSong UUID -> UUID forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' A_Lens NoIx ArtistOfSong UUID #identifier, $sel:songIdentifier:SongArtist' :: PrimaryKey SongT Identity songIdentifier = C Identity Text -> PrimaryKey SongT Identity forall (f :: * -> *). Columnar f Text -> PrimaryKey SongT f SongId (C Identity Text -> PrimaryKey SongT Identity) -> C Identity Text -> PrimaryKey SongT Identity forall a b. (a -> b) -> a -> b $ UUID -> Text UUID.toText (UUID -> Text) -> UUID -> Text forall a b. (a -> b) -> a -> b $ ArtistOfSong x ArtistOfSong -> Optic' A_Lens NoIx ArtistOfSong UUID -> UUID forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' A_Lens NoIx ArtistOfSong UUID #songIdentifier, $sel:artistIdentifier:SongArtist' :: 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 $ ArtistOfSong x ArtistOfSong -> Optic' A_Lens NoIx ArtistOfSong UUID -> UUID forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' A_Lens NoIx ArtistOfSong UUID #artistIdentifier, $sel:createdBy:SongArtist' :: C Identity Text createdBy = UUID -> Text UUID.toText (UUID -> Text) -> UUID -> Text forall a b. (a -> b) -> a -> b $ ArtistOfSong x ArtistOfSong -> Optic' A_Lens NoIx ArtistOfSong UUID -> UUID forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' A_Lens NoIx ArtistOfSong UUID #createdBy, $sel:createdAt:SongArtist' :: C Identity UTCTime createdAt = ArtistOfSong x ArtistOfSong -> Optic' A_Lens NoIx ArtistOfSong UTCTime -> UTCTime forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' A_Lens NoIx ArtistOfSong UTCTime #createdAt } mkSongGenreP :: s -> SongGenreT f mkSongGenreP s x = SongGenre' { $sel:identifier:SongGenre' :: Columnar f Text identifier = s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #identifier, $sel:songIdentifier:SongGenre' :: PrimaryKey SongT f songIdentifier = Columnar f Text -> PrimaryKey SongT f forall (f :: * -> *). Columnar f Text -> PrimaryKey SongT f SongId (Columnar f Text -> PrimaryKey SongT f) -> Columnar f Text -> PrimaryKey SongT f forall a b. (a -> b) -> a -> b $ s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #songIdentifier, $sel:genreIdentifier:SongGenre' :: PrimaryKey GenreT f genreIdentifier = Columnar f Text -> PrimaryKey GenreT f forall (f :: * -> *). Columnar f Text -> PrimaryKey GenreT f GenreId (Columnar f Text -> PrimaryKey GenreT f) -> Columnar f Text -> PrimaryKey GenreT f forall a b. (a -> b) -> a -> b $ s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #genreIdentifier, $sel:createdBy:SongGenre' :: Columnar f Text createdBy = s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #createdBy, $sel:createdAt:SongGenre' :: Columnar f UTCTime createdAt = s x s -> Optic' k NoIx s (Columnar f UTCTime) -> Columnar f UTCTime forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f UTCTime) #createdAt } mkArtistGenreP :: s -> ArtistGenreT f mkArtistGenreP s x = ArtistGenre' { $sel:identifier:ArtistGenre' :: Columnar f Text identifier = s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #identifier, $sel:artistIdentifier:ArtistGenre' :: PrimaryKey ArtistT f artistIdentifier = Columnar f Text -> PrimaryKey ArtistT f forall (f :: * -> *). Columnar f Text -> PrimaryKey ArtistT f ArtistId (Columnar f Text -> PrimaryKey ArtistT f) -> Columnar f Text -> PrimaryKey ArtistT f forall a b. (a -> b) -> a -> b $ s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #artistIdentifier, $sel:genreIdentifier:ArtistGenre' :: PrimaryKey GenreT f genreIdentifier = Columnar f Text -> PrimaryKey GenreT f forall (f :: * -> *). Columnar f Text -> PrimaryKey GenreT f GenreId (Columnar f Text -> PrimaryKey GenreT f) -> Columnar f Text -> PrimaryKey GenreT f forall a b. (a -> b) -> a -> b $ s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #genreIdentifier, $sel:createdBy:ArtistGenre' :: Columnar f Text createdBy = s x s -> Optic' k NoIx s (Columnar f Text) -> Columnar f Text forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f Text) #createdBy, $sel:createdAt:ArtistGenre' :: Columnar f UTCTime createdAt = s x s -> Optic' k NoIx s (Columnar f UTCTime) -> Columnar f UTCTime forall k s (is :: IxList) a. Is k A_Getter => s -> Optic' k is s a -> a ^. Optic' k NoIx s (Columnar f UTCTime) #createdAt }