from dataclasses import dataclass, field
from typing import List

from .model import Model

@dataclass
class Channel(Model):
    """Base Channel class. Have maximum options."""

    author: str=""
    authorId: str=""
    authorUrl: str=""
    authorBanners: List[dict]=field(
        default_factory=lambda: list()
    )
    authorThumbnails: List[dict]=field(
        default_factory=lambda: list()
    )

    subCount: int=0
    totalViews: int=0
    joined: int=0

    description: str=""
    descriptionHtml: str=""

    latestVideos: List[dict]=field(
        default_factory=lambda: list()
    )
    relatedChannels: List[dict]=field(
        default_factory=lambda: list()
    )
 
    autoGenerated: bool=False
    isFamilyFriendly: bool=False
    allowedRegions: List[str]=field(
        default_factory=lambda: list()
    )
    

