{-# LANGUAGE FlexibleInstances      #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE TemplateHaskell        #-}
{-# OPTIONS_GHC -Wno-missing-import-lists #-}
{-# OPTIONS_HADDOCK hide #-}

-- | Lens classes and instances generated with template Haskell.
module Strive.Internal.Lenses
  ( AccessTokenLens ( accessToken )
  , AchievementCountLens ( achievementCount )
  , ActivityIdLens ( activityId )
  , ActivityTypeLens ( activityType )
  , AfterLens ( after )
  , AgeGroupLens ( ageGroup )
  , AllEffortsLens ( allEfforts )
  , ApprovalPromptLens ( approvalPrompt )
  , AthleteCountLens ( athleteCount )
  , AthleteGenderLens ( athleteGender )
  , AthleteIdLens ( athleteId )
  , AthleteLens ( athlete )
  , AthleteNameLens ( athleteName )
  , AthleteProfileLens ( athleteProfile )
  , AverageCadenceLens ( averageCadence )
  , AverageGradeLens ( averageGrade )
  , AverageHeartrateLens ( averageHeartrate )
  , AverageHrLens ( averageHr )
  , AverageSpeedLens ( averageSpeed )
  , AverageWattsLens ( averageWatts )
  , AvgGradeLens ( avgGrade )
  , BeforeLens ( before )
  , BikesLens ( bikes )
  , BrandNameLens ( brandName )
  , CaloriesLens ( calories )
  , CaptionLens ( caption )
  , CityLens ( city )
  , ClimbCategoryDescLens ( climbCategoryDesc )
  , ClimbCategoryLens ( climbCategory )
  , ClubIdLens ( clubId )
  , ClubsLens ( clubs )
  , ClubTypeLens ( clubType )
  , CommentCountLens ( commentCount )
  , CommuteLens ( commute )
  , ContextEntriesLens ( contextEntries )
  , CountryLens ( country )
  , CreatedAtLens ( createdAt )
  , Data_Lens ( data_ )
  , DatePreferenceLens ( datePreference )
  , DateRangeLens ( dateRange )
  , DescriptionLens ( description )
  , DeviceWattsLens ( deviceWatts )
  , DistanceLens ( distance )
  , DistributionBucketsLens ( distributionBuckets )
  , EffortCountLens ( effortCount )
  , EffortIdLens ( effortId )
  , ElapsedTimeLens ( elapsedTime )
  , ElevationHighLens ( elevationHigh )
  , ElevationLowLens ( elevationLow )
  , ElevDifferenceLens ( elevDifference )
  , EmailLens ( email )
  , EndIndexLens ( endIndex )
  , EndLatitudeLens ( endLatitude )
  , EndLatlngLens ( endLatlng )
  , EndLongitudeLens ( endLongitude )
  , EntriesLens ( entries )
  , EntryCountLens ( entryCount )
  , ErrorLens ( error )
  , ExternalIdLens ( externalId )
  , FirstnameLens ( firstname )
  , FlaggedLens ( flagged )
  , FollowerCountLens ( followerCount )
  , FollowerLens ( follower )
  , FollowingLens ( following )
  , FrameTypeLens ( frameType )
  , FriendCountLens ( friendCount )
  , FriendLens ( friend )
  , FtpLens ( ftp )
  , GearIdLens ( gearId )
  , GearLens ( gear )
  , GenderLens ( gender )
  , HasKudoedLens ( hasKudoed )
  , HazardousLens ( hazardous )
  , HiddenLens ( hidden )
  , IdLens ( id )
  , InstagramPrimaryPhotoLens ( instagramPrimaryPhoto )
  , KilojoulesLens ( kilojoules )
  , KomRankLens ( komRank )
  , KudosCountLens ( kudosCount )
  , LapIndexLens ( lapIndex )
  , LastnameLens ( lastname )
  , LocationCityLens ( locationCity )
  , LocationCountryLens ( locationCountry )
  , LocationLens ( location )
  , LocationStateLens ( locationState )
  , ManualLens ( manual )
  , MapLens ( map )
  , MarkdownLens ( markdown )
  , MaxCatLens ( maxCat )
  , MaxHeartrateLens ( maxHeartrate )
  , MaximumGradeLens ( maximumGrade )
  , MaxLens ( max )
  , MaxSpeedLens ( maxSpeed )
  , MeasurementPreferenceLens ( measurementPreference )
  , MemberCountLens ( memberCount )
  , MinCatLens ( minCat )
  , MinLens ( min )
  , ModelNameLens ( modelName )
  , MovingTimeLens ( movingTime )
  , MutualFriendCountLens ( mutualFriendCount )
  , NameLens ( name )
  , OriginalSizeLens ( originalSize )
  , PageLens ( page )
  , PerPageLens ( perPage )
  , PhotoCountLens ( photoCount )
  , PointsLens ( points )
  , PolylineLens ( polyline )
  , PremiumLens ( premium )
  , PrimaryLens ( primary )
  , PrivateLens ( private )
  , PrivateScopeLens ( privateScope )
  , ProfileLens ( profile )
  , ProfileMediumLens ( profileMedium )
  , PrRankLens ( prRank )
  , RangeLens ( range )
  , RankLens ( rank )
  , RefLens ( ref )
  , RequesterLens ( requester )
  , ResolutionLens ( resolution )
  , ResourceStateLens ( resourceState )
  , SegmentEffortsLens ( segmentEfforts )
  , SegmentLens ( segment )
  , SegmentsLens ( segments )
  , SensorBasedLens ( sensorBased )
  , SeriesTypeLens ( seriesType )
  , SexLens ( sex )
  , ShoesLens ( shoes )
  , SportTypeLens ( sportType )
  , StarCountLens ( starCount )
  , StarredLens ( starred )
  , StartDateLens ( startDate )
  , StartDateLocalLens ( startDateLocal )
  , StartIndexLens ( startIndex )
  , StartLatitudeLens ( startLatitude )
  , StartLatlngLens ( startLatlng )
  , StartLongitudeLens ( startLongitude )
  , StateLens ( state )
  , StatusLens ( status )
  , SummaryPolylineLens ( summaryPolyline )
  , TextLens ( text )
  , TimeLens ( time )
  , TimezoneLens ( timezone )
  , TotalElevationGainLens ( totalElevationGain )
  , TrainerLens ( trainer )
  , TruncatedLens ( truncated )
  , Type_Lens ( type_ )
  , UidLens ( uid )
  , UpdatedAtLens ( updatedAt )
  , UploadedAtLens ( uploadedAt )
  , UploadIdLens ( uploadId )
  , WeightClassLens ( weightClass )
  , WeightedAverageWattsLens ( weightedAverageWatts )
  , WeightLens ( weight )
  , WriteScopeLens ( writeScope )
  ) where

import Strive.Internal.TH (makeLenses)
import Strive.Lenses (Lens)

import Strive.Client
import Strive.Internal.Options
import Strive.Options
import Strive.Types

$(makeLenses "Client")

$(makeLenses "BuildAuthorizeUrlOptions")
$(makeLenses "CreateActivityOptions")
$(makeLenses "ExploreSegmentsOptions")
$(makeLenses "GetActivityCommentsOptions")
$(makeLenses "GetActivityOptions")
$(makeLenses "GetClubActivitiesOptions")
$(makeLenses "GetCurrentActivitiesOptions")
$(makeLenses "GetSegmentEffortsOptions")
$(makeLenses "GetSegmentLeaderboardOptions")
$(makeLenses "GetStreamsOptions")
$(makeLenses "PaginationOptions")
$(makeLenses "UpdateActivityOptions")
$(makeLenses "UpdateCurrentAthleteOptions")
$(makeLenses "UploadActivityOptions")

$(makeLenses "ActivityDetailed")
$(makeLenses "ActivityLapSummary")
$(makeLenses "ActivitySummary")
$(makeLenses "ActivityZoneDetailed")
$(makeLenses "ActivityZoneDistributionBucket")
$(makeLenses "AthleteDetailed")
$(makeLenses "AthleteMeta")
$(makeLenses "AthleteSummary")
$(makeLenses "ClubDetailed")
$(makeLenses "ClubSummary")
$(makeLenses "CommentSummary")
$(makeLenses "DeauthorizationResponse")
$(makeLenses "EffortDetailed")
$(makeLenses "GearDetailed")
$(makeLenses "GearSummary")
$(makeLenses "PhotoSummary")
$(makeLenses "PolylineDetailed")
$(makeLenses "PolylineSummary")
$(makeLenses "SegmentDetailed")
$(makeLenses "SegmentExplorerEntry")
$(makeLenses "SegmentExplorerResponse")
$(makeLenses "SegmentLeaderboardEntry")
$(makeLenses "SegmentLeaderboardResponse")
$(makeLenses "SegmentSummary")
$(makeLenses "StreamDetailed")
$(makeLenses "TokenExchangeResponse")
$(makeLenses "UploadStatus")