# retoor <retoor@molodetz.nl>
from __future__ import annotations
from typing import Any, Optional
from devplacepy.schemas.base import _Out
from devplacepy.schemas.content import UserOut
class AuthPageOut(_Out):
page: str = ""
next_url: Optional[str] = None
registration_closed: Optional[bool] = None
sent: Optional[bool] = None
token: Optional[str] = None
errors: list = []
class LandingArticleOut(_Out):
uid: str = ""
slug: str = ""
title: Optional[str] = None
description: Optional[str] = None
url: Optional[str] = None
source_name: Optional[str] = None
grade: int = 0
featured: int = 0
synced_at: Optional[str] = None
time_ago: Optional[str] = None
image_url: Optional[str] = None
class LandingPostOut(_Out):
post: Optional[Any] = None
author: Optional[UserOut] = None
time_ago: Optional[str] = None
comment_count: int = 0
stars: int = 0
slug: str = ""
class TrendingTopicOut(_Out):
topic: str = ""
count: int = 0
class LandingOut(_Out):
is_authenticated: bool = False
user_post_count: int = 0
user_stars: int = 0
user_xp: int = 0
user_level: int = 1
xp_progress_pct: int = 0
unread_count: int = 0
landing_articles: list[LandingArticleOut] = []
landing_posts: list[LandingPostOut] = []
top_contributors: list = []
trending_topics: list[TrendingTopicOut] = []
class DeviiPageOut(_Out):
page_title: Optional[str] = None
meta_description: Optional[str] = None
meta_robots: Optional[str] = None
canonical_url: Optional[str] = None
og_title: Optional[str] = None
og_description: Optional[str] = None
og_image: Optional[str] = None
og_type: Optional[str] = None
breadcrumbs: list = []
page_schema: Optional[Any] = None
prev_url: Optional[str] = None
next_url: Optional[str] = None
user: Optional[Any] = None