package com.ruoyi.web.modules.video.support;

/**
 * 畜牧监控业务常量与展示转换。
 * <p>
 * 所属主体类型、删除标记、视频来源枚举，以及列表/详情用的中文名称填充。
 * 与表 {@code biz_livestock_monitor} 字段取值保持一致。
 * </p>
 */
public final class LivestockMonitorRules
{
    /** 所属主体：养殖主体（关联 {@code biz_pasture}） */
    public static final int OWNER_TYPE_PASTURE = 1;

    /** 所属主体：交易市场（关联 {@code biz_trade_market}） */
    public static final int OWNER_TYPE_TRADE_MARKET = 2;

    /** 逻辑删除标记：正常 */
    public static final String DEL_FLAG_NORMAL = "0";

    /** 逻辑删除标记：已删除 */
    public static final String DEL_FLAG_DELETED = "2";

    /** 所属主体下拉：每个数据源（牧场/市场）单次最多返回条数 */
    public static final int OWNER_OPTIONS_LIMIT = 200;

    /** 视频来源：WVP 平台，存库值 {@code wvp} */
    public static final String VIDEO_SOURCE_WVP = "wvp";

    /** 视频来源：萤石云，存库值 {@code ys7} */
    public static final String VIDEO_SOURCE_YS7 = "ys7";

    /** 视频来源：直链 URL，存库值 {@code url} */
    public static final String VIDEO_SOURCE_URL = "url";

    private LivestockMonitorRules()
    {
    }

    /**
     * 主体类型转中文展示名。
     *
     * @param ownerType {@link #OWNER_TYPE_PASTURE} 或 {@link #OWNER_TYPE_TRADE_MARKET}，其他返回空串
     */
    public static String ownerTypeName(Integer ownerType)
    {
        if (ownerType == null)
        {
            return "";
        }
        if (ownerType == OWNER_TYPE_PASTURE)
        {
            return "养殖主体";
        }
        if (ownerType == OWNER_TYPE_TRADE_MARKET)
        {
            return "交易市场";
        }
        return "";
    }

    /** 是否为合法主体类型（1 或 2） */
    public static boolean isOwnerTypeValid(Integer ownerType)
    {
        return ownerType != null
                && (ownerType == OWNER_TYPE_PASTURE || ownerType == OWNER_TYPE_TRADE_MARKET);
    }

    /** 是否为合法视频来源（wvp / ys7 / url，须小写） */
    public static boolean isVideoSourceValid(String videoSource)
    {
        return VIDEO_SOURCE_WVP.equals(videoSource)
                || VIDEO_SOURCE_YS7.equals(videoSource)
                || VIDEO_SOURCE_URL.equals(videoSource);
    }

    /** 视频来源存库值转中文展示名 */
    public static String videoSourceName(String videoSource)
    {
        if (VIDEO_SOURCE_WVP.equals(videoSource))
        {
            return "WVP";
        }
        if (VIDEO_SOURCE_YS7.equals(videoSource))
        {
            return "萤石云";
        }
        if (VIDEO_SOURCE_URL.equals(videoSource))
        {
            return "直链URL";
        }
        return "";
    }
}
