Source code for etoropy.models.feeds

from __future__ import annotations

from typing import Any

from pydantic import BaseModel, Field


[docs] class CreatePostRequest(BaseModel): content: str instrument_id: int | None = Field(None, alias="instrumentId", serialization_alias="instrumentId")
[docs] class FeedPost(BaseModel): model_config = {"extra": "allow"} post_id: str = Field(alias="postId") user_id: int = Field(alias="userId") username: str content: str created_at: str = Field(alias="createdAt") instrument_id: int | None = Field(None, alias="instrumentId") likes_count: int = Field(0, alias="likesCount") comments_count: int = Field(0, alias="commentsCount")
[docs] class FeedResponse(BaseModel): posts: list[FeedPost] = []
[docs] class GetFeedParams(BaseModel): page: int | None = None page_size: int | None = None
[docs] class CreateCommentRequest(BaseModel): post_id: str = Field(alias="postId", serialization_alias="postId") content: str
[docs] class Comment(BaseModel): model_config = {"extra": "allow"} comment_id: str = Field(alias="commentId") post_id: str = Field(alias="postId") user_id: int = Field(alias="userId") username: str content: str created_at: str = Field(alias="createdAt")
[docs] class UserSearchParams(BaseModel): search_text: str | None = None page: int | None = None page_size: int | None = None
[docs] class UserProfile(BaseModel): model_config = {"extra": "allow"} user_id: int = Field(alias="userId") username: str display_name: str = Field("", alias="displayName")
[docs] class UserPerformance(BaseModel): model_config = {"extra": "allow"} user_id: int = Field(alias="userId")
[docs] class UserPortfolio(BaseModel): model_config = {"extra": "allow"} user_id: int = Field(alias="userId") positions: list[Any] = []
[docs] class CopierInfo(BaseModel): model_config = {"extra": "allow"} user_id: int = Field(alias="userId") copiers_count: int = Field(0, alias="copiersCount")
[docs] class CuratedList(BaseModel): model_config = {"extra": "allow"} list_id: int = Field(alias="listId") name: str items: list[Any] = []
[docs] class MarketRecommendation(BaseModel): model_config = {"extra": "allow"} instrument_id: int = Field(alias="instrumentId")