"""
add router for different parts (like comics, tysc, media)
"""

from fastapi import APIRouter, Depends
from src.apis.version1.admin import mailaccount
from src.apis.version1.comics import (
    artist,
    publisher,
    comic,
    issue,
    worktype,
    volume,
    storyarc,
    comicwork,
    issuework,
)
from src.apis.version1.media import (
    actor,
    file,
    mediaactorfile,
    mediavideo,
    mediaarticle,
)
from src.apis.version1.tysc import (
    card,
    cardset,
    fieldposition,
    player,
    rooster,
    sport,
    team,
    vendor,
)
from src.core.security import get_current_user_from_token

from src.apis.version1.user import assignment, permission, profile, token
from src.apis.version1.bookshelf import article, bookshelf_publisher, book, author, articleauthor, bookauthor

api_router = APIRouter(prefix="/api")
api_router.include_router(
    comic.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    publisher.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    artist.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    issue.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    worktype.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    volume.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    storyarc.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    comicwork.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    issuework.router,
    prefix="/comics",
    tags=["comics"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    file.router,
    prefix="/media",
    tags=["media"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    mediavideo.router,
    prefix="/media",
    tags=["media"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    mediaarticle.router,
    prefix="/media",
    tags=["media"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    actor.router,
    prefix="/media",
    tags=["media"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    mediaactorfile.router,
    prefix="/media",
    tags=["media"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    sport.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    player.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    team.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    fieldposition.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    rooster.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    vendor.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    cardset.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    card.router,
    prefix="/tysc",
    tags=["tysc"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    article.router,
    prefix="/bookshelf",
    tags=["bookshelf"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    bookshelf_publisher.router,
    prefix="/bookshelf",
    tags=["bookshelf"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    book.router,
    prefix="/bookshelf",
    tags=["bookshelf"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    author.router,
    prefix="/bookshelf",
    tags=["bookshelf"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    articleauthor.router,
    prefix="/bookshelf",
    tags=["bookshelf"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    bookauthor.router,
    prefix="/bookshelf",
    tags=["bookshelf"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    profile.router,
    prefix="/user",
    tags=["user"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    token.router,
    prefix="/user",
    tags=["user"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    permission.router,
    prefix="/user",
    tags=["user"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    assignment.router,
    prefix="/user",
    tags=["user"],
    dependencies=[Depends(get_current_user_from_token)],
)
api_router.include_router(
    mailaccount.router,
    prefix="/admin",
    tags=["admin"],
    dependencies=[Depends(get_current_user_from_token)],
)
