package com.fs.course.service;

import com.fs.common.core.domain.R;
import com.fs.course.config.CourseConfig;
import com.fs.course.param.FsUserCourseVideoAddKfUParam;

/**
 * 按项目看课销售绑定：isAddKf 入口同步校验与首次绑定
 */
public interface ICourseProjectSalesBindService {

    /**
     * 全局开关开启且已到生效时间
     */
    boolean isLimitActive(CourseConfig config);

    /**
     * 加载 course.config
     */
    CourseConfig loadCourseConfig();

    /**
     * 是否先导课（豁免重粉限制）
     */
    boolean isPilotCourse(Long videoId, CourseConfig config);

    /**
     * 同步校验并在首次进入时写入 fs_user_company_qw。
     *
     * @return null 表示通过，否则为拦截响应
     */
    R checkAndBind(FsUserCourseVideoAddKfUParam param);
}
