# This file is auto-generated by generate_models.py
# This file may be manually edited after generation
# The file has been formatted using isort and black

from typing import Any, ClassVar, Dict, List

from sqlalchemy import Column, PrimaryKeyConstraint, text

from tushare_models.core import Base, Date, DateTime, Float, Integer, String
from tushare_models.core.dialect_config import apply_table_dialect_options


class FundSalesRatio(Base):
    """各渠道公募基金销售保有规模占比"""

    __tablename__: str = "fund_sales_ratio"
    __api_id__: ClassVar[int] = 265
    __api_name__: ClassVar[str] = "fund_sales_ratio"
    __api_title__: ClassVar[str] = "各渠道公募基金销售保有规模占比"
    __api_info_title__: ClassVar[str] = "各渠道公募基金销售保有规模占比"
    __api_path__: ClassVar[List[str]] = ["数据接口", "财富管理", "基金销售行业数据"]
    __api_path_ids__: ClassVar[List[int]] = [1, 34, 35]
    __api_points_required__: ClassVar[int] = 0
    __api_special_permission__: ClassVar[bool] = False
    __has_vip__: ClassVar[bool] = False
    __dependencies__: ClassVar[List[str]] = []
    __primary_key__: ClassVar[List[str]] = ["year"]
    __start_date__: ClassVar[str | None] = None
    __end_date__: ClassVar[str | None] = None
    __api_params__: ClassVar[Dict[str, Any]] = {
        "年份": {"type": "String", "required": False, "description": "年度"},
        "limit": {"type": "Int64", "required": False, "description": "单次返回数据长度"},
        "offset": {"type": "Int64", "required": False, "description": "请求数据的开始位移量"},
    }

    __mapper_args__ = {"primary_key": __primary_key__}
    __table_args__ = (
        PrimaryKeyConstraint(*__primary_key__),
        {
            "comment": "各渠道公募基金销售保有规模占比",
            # MySQL引擎
            "mysql_engine": "InnoDB",
        },
    )

    year = Column("year", Integer, nullable=False, comment="年度")
    bank = Column("bank", Float, nullable=True, comment="商业银行(%)")
    sec_comp = Column("sec_comp", Float, nullable=True, comment="证券公司(%)")
    fund_comp = Column("fund_comp", Float, nullable=True, comment="基金公司直销(%)")
    indep_comp = Column("indep_comp", Float, nullable=True, comment="独立基金销售机构(%)")
    rests = Column("rests", Float, nullable=True, comment="其他(%)")

apply_table_dialect_options(FundSalesRatio)
