"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import paperpilot_common.protobuf.common.util_pb2
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class PaperId(google.protobuf.message.Message):
    """论文 ID"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    id: builtins.str
    def __init__(
        self,
        *,
        id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id"]) -> None: ...

global___PaperId = PaperId

@typing_extensions.final
class PaperDetail(google.protobuf.message.Message):
    """论文详细信息"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    PROJECT_ID_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    ABSTRACT_FIELD_NUMBER: builtins.int
    KEYWORDS_FIELD_NUMBER: builtins.int
    AUTHORS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    PUBLICATION_YEAR_FIELD_NUMBER: builtins.int
    PUBLICATION_FIELD_NUMBER: builtins.int
    VOLUME_FIELD_NUMBER: builtins.int
    ISSUE_FIELD_NUMBER: builtins.int
    PAGES_FIELD_NUMBER: builtins.int
    URL_FIELD_NUMBER: builtins.int
    DOI_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    CREATE_TIME_FIELD_NUMBER: builtins.int
    UPDATE_TIME_FIELD_NUMBER: builtins.int
    EVENT_FIELD_NUMBER: builtins.int
    id: builtins.str
    """论文 ID"""
    project_id: builtins.str
    """所属项目 ID"""
    title: builtins.str
    """标题"""
    abstract: builtins.str
    """摘要"""
    @property
    def keywords(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """关键字列表"""
    @property
    def authors(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """作者列表"""
    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """tag列表"""
    publication_year: builtins.int
    """出版年份"""
    publication: builtins.str
    """出版方"""
    volume: builtins.str
    """卷号"""
    issue: builtins.str
    """期号"""
    pages: builtins.str
    """页码"""
    url: builtins.str
    doi: builtins.str
    file: builtins.str
    """文件 url"""
    @property
    def create_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def update_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    event: builtins.str
    """活动"""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        project_id: builtins.str = ...,
        title: builtins.str = ...,
        abstract: builtins.str = ...,
        keywords: collections.abc.Iterable[builtins.str] | None = ...,
        authors: collections.abc.Iterable[builtins.str] | None = ...,
        tags: collections.abc.Iterable[builtins.str] | None = ...,
        publication_year: builtins.int = ...,
        publication: builtins.str = ...,
        volume: builtins.str = ...,
        issue: builtins.str = ...,
        pages: builtins.str = ...,
        url: builtins.str = ...,
        doi: builtins.str = ...,
        file: builtins.str = ...,
        create_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        update_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        event: builtins.str = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["create_time", b"create_time", "update_time", b"update_time"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "abstract",
            b"abstract",
            "authors",
            b"authors",
            "create_time",
            b"create_time",
            "doi",
            b"doi",
            "event",
            b"event",
            "file",
            b"file",
            "id",
            b"id",
            "issue",
            b"issue",
            "keywords",
            b"keywords",
            "pages",
            b"pages",
            "project_id",
            b"project_id",
            "publication",
            b"publication",
            "publication_year",
            b"publication_year",
            "tags",
            b"tags",
            "title",
            b"title",
            "update_time",
            b"update_time",
            "url",
            b"url",
            "volume",
            b"volume",
        ],
    ) -> None: ...

global___PaperDetail = PaperDetail

@typing_extensions.final
class ListPaperRequest(google.protobuf.message.Message):
    """获取论文列表请求"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    PAGE_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    ORDER_BY_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """项目 ID"""
    page: builtins.int
    """页码"""
    page_size: builtins.int
    """每页数量"""
    order_by: builtins.str
    """排序"""
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
        page: builtins.int = ...,
        page_size: builtins.int = ...,
        order_by: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "order_by", b"order_by", "page", b"page", "page_size", b"page_size", "project_id", b"project_id"
        ],
    ) -> None: ...

global___ListPaperRequest = ListPaperRequest

@typing_extensions.final
class ListPaperResponse(google.protobuf.message.Message):
    """获取论文列表响应"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAPERS_FIELD_NUMBER: builtins.int
    TOTAL_FIELD_NUMBER: builtins.int
    NEXT_PAGE_FIELD_NUMBER: builtins.int
    @property
    def papers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PaperDetail]:
        """论文列表"""
    total: builtins.int
    """总数"""
    next_page: builtins.int
    """下一页"""
    def __init__(
        self,
        *,
        papers: collections.abc.Iterable[global___PaperDetail] | None = ...,
        total: builtins.int = ...,
        next_page: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["next_page", b"next_page", "papers", b"papers", "total", b"total"]
    ) -> None: ...

global___ListPaperResponse = ListPaperResponse

@typing_extensions.final
class CreatePaperRequest(google.protobuf.message.Message):
    """添加论文请求"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    PAPER_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """项目 ID"""
    @property
    def paper(self) -> global___PaperDetail: ...
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
        paper: global___PaperDetail | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["paper", b"paper"]) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["paper", b"paper", "project_id", b"project_id"]
    ) -> None: ...

global___CreatePaperRequest = CreatePaperRequest

@typing_extensions.final
class UpdateAttachmentRequest(google.protobuf.message.Message):
    """更新论文附件请求"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAPER_ID_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    FETCH_METADATA_FIELD_NUMBER: builtins.int
    paper_id: builtins.str
    """论文 ID"""
    file: builtins.str
    """文件 url"""
    fetch_metadata: builtins.bool
    """是否自动获取元数据"""
    def __init__(
        self,
        *,
        paper_id: builtins.str = ...,
        file: builtins.str = ...,
        fetch_metadata: builtins.bool = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "fetch_metadata", b"fetch_metadata", "file", b"file", "paper_id", b"paper_id"
        ],
    ) -> None: ...

global___UpdateAttachmentRequest = UpdateAttachmentRequest

@typing_extensions.final
class UploadAttachmentRequest(google.protobuf.message.Message):
    """上传附件请求"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAPER_ID_FIELD_NUMBER: builtins.int
    FETCH_METADATA_FIELD_NUMBER: builtins.int
    paper_id: builtins.str
    """论文 ID"""
    fetch_metadata: builtins.bool
    """是否自动获取元数据"""
    def __init__(
        self,
        *,
        paper_id: builtins.str = ...,
        fetch_metadata: builtins.bool = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["fetch_metadata", b"fetch_metadata", "paper_id", b"paper_id"]
    ) -> None: ...

global___UploadAttachmentRequest = UploadAttachmentRequest

@typing_extensions.final
class UploadAttachmentResponse(google.protobuf.message.Message):
    """上传附件响应"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TOKEN_FIELD_NUMBER: builtins.int
    @property
    def token(self) -> paperpilot_common.protobuf.common.util_pb2.OssToken: ...
    def __init__(
        self,
        *,
        token: paperpilot_common.protobuf.common.util_pb2.OssToken | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["token", b"token"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["token", b"token"]) -> None: ...

global___UploadAttachmentResponse = UploadAttachmentResponse

@typing_extensions.final
class CreatePaperByLinkRequest(google.protobuf.message.Message):
    """通过链接创建论文请求"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    LINK_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    link: builtins.str
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
        link: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["link", b"link", "project_id", b"project_id"]
    ) -> None: ...

global___CreatePaperByLinkRequest = CreatePaperByLinkRequest
