from sqladmin import ModelView

from app.home.models import Image, Project


class ProjectAdmin(ModelView, model=Project):
    name = "프로젝트"
    name_plural = "프로젝트 목록"
    icon = "fa-solid fa-folder"
    category = "프로젝트 관리"
    page_size = 20

    column_list = [
        "id",
        "store_name",
        "region",
        "task_id",
        "created_at",
    ]

    column_details_list = [
        "id",
        "store_name",
        "region",
        "task_id",
        "detail_region_info",
        "created_at",
    ]

    # 폼(생성/수정)에서 제외
    form_excluded_columns = ["created_at", "lyrics", "songs", "videos"]

    column_searchable_list = [
        Project.store_name,
        Project.region,
        Project.task_id,
    ]

    column_default_sort = (Project.created_at, True)  # True: DESC (최신순)

    column_sortable_list = [
        Project.id,
        Project.store_name,
        Project.region,
        Project.created_at,
    ]

    column_labels = {
        "id": "ID",
        "store_name": "가게명",
        "region": "지역",
        "task_id": "작업 ID",
        "detail_region_info": "상세 지역 정보",
        "created_at": "생성일시",
    }


class ImageAdmin(ModelView, model=Image):
    name = "이미지"
    name_plural = "이미지 목록"
    icon = "fa-solid fa-image"
    category = "프로젝트 관리"
    page_size = 20

    column_list = [
        "id",
        "task_id",
        "img_name",
        "created_at",
    ]

    column_details_list = [
        "id",
        "task_id",
        "img_name",
        "img_url",
        "created_at",
    ]

    # 폼(생성/수정)에서 제외
    form_excluded_columns = ["created_at"]

    column_searchable_list = [
        Image.task_id,
        Image.img_name,
    ]

    column_default_sort = (Image.created_at, True)  # True: DESC (최신순)

    column_sortable_list = [
        Image.id,
        Image.img_name,
        Image.created_at,
    ]

    column_labels = {
        "id": "ID",
        "task_id": "작업 ID",
        "img_name": "이미지명",
        "img_url": "이미지 URL",
        "created_at": "생성일시",
    }
