# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.

# typed: true
# frozen_string_literal: true


module PlexRubySDK
  module Operations
  

    class GetSessionHistoryRequest < ::PlexRubySDK::Utils::FieldAugmented
      extend T::Sig

      # Filter results by those that are related to a specific users id
      # 
      field :account_id, T.nilable(::Integer), { 'query_param': { 'field_name': 'accountId', 'style': 'form', 'explode': true } }
      # Filters content by field and direction/equality
      # (Unknown if viewedAt is the only supported column)
      # 
      field :filter, T.nilable(::PlexRubySDK::Operations::QueryParamFilter), { 'query_param': { 'field_name': 'filter', 'style': 'form', 'explode': true } }
      # Filters the results based on the id of a valid library section
      # 
      field :library_section_id, T.nilable(::Integer), { 'query_param': { 'field_name': 'librarySectionID', 'style': 'form', 'explode': true } }
      # Sorts the results by the specified field followed by the direction (asc, desc)
      # 
      field :sort, T.nilable(::String), { 'query_param': { 'field_name': 'sort', 'style': 'form', 'explode': true } }


      sig { params(account_id: T.nilable(::Integer), filter: T.nilable(::PlexRubySDK::Operations::QueryParamFilter), library_section_id: T.nilable(::Integer), sort: T.nilable(::String)).void }
      def initialize(account_id: nil, filter: nil, library_section_id: nil, sort: nil)
        @account_id = account_id
        @filter = filter
        @library_section_id = library_section_id
        @sort = sort
      end
    end
  end
end
