# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: cosmos/base/query/v1beta1/pagination.proto
# plugin: python-betterproto
from dataclasses import dataclass

import betterproto


@dataclass(eq=False, repr=False)
class PageRequest(betterproto.Message):
    """
    PageRequest is to be embedded in gRPC request messages for efficient
    pagination. Ex:  message SomeRequest {          Foo some_parameter = 1;
    PageRequest pagination = 2;  }
    """

    key: bytes = betterproto.bytes_field(1)
    """
    key is a value returned in PageResponse.next_key to begin querying the next
    page most efficiently. Only one of offset or key should be set.
    """

    offset: int = betterproto.uint64_field(2)
    """
    offset is a numeric offset that can be used when key is unavailable. It is
    less efficient than using key. Only one of offset or key should be set.
    """

    limit: int = betterproto.uint64_field(3)
    """
    limit is the total number of results to be returned in the result page. If
    left empty it will default to a value to be set by each app.
    """

    count_total: bool = betterproto.bool_field(4)
    """
    count_total is set to true  to indicate that the result set should include
    a count of the total number of items available for pagination in UIs.
    count_total is only respected when offset is used. It is ignored when key
    is set.
    """

    reverse: bool = betterproto.bool_field(5)
    """
    reverse is set to true if results are to be returned in the descending
    order. Since: cosmos-sdk 0.43
    """


@dataclass(eq=False, repr=False)
class PageResponse(betterproto.Message):
    """
    PageResponse is to be embedded in gRPC response messages where the
    corresponding request message has used PageRequest.  message SomeResponse {
    repeated Bar results = 1;          PageResponse page = 2;  }
    """

    next_key: bytes = betterproto.bytes_field(1)
    """
    next_key is the key to be passed to PageRequest.key to query the next page
    most efficiently
    """

    total: int = betterproto.uint64_field(2)
    """
    total is total number of results available if PageRequest.count_total was
    set, its value is undefined otherwise
    """
