package com.seer.teach.mp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.seer.teach.mp.entity.MpActivityFormRelationEntity;

import java.util.Optional;

/**
 * <p>
 * 活动与表单模板关联表 服务类
 * </p>
 *
 * @author Lingma
 * @since 2026-01-10
 */
public interface IMpActivityFormRelationService extends IService<MpActivityFormRelationEntity> {

    /**
     * 根据活动ID获取关联的主要表单ID
     *
     * @param activityId 活动ID
     * @return 表单模板ID，如果不存在则返回null
     */
    Integer getPrimaryFormIdByActivityId(Integer activityId);

    /**
     * 根据活动ID获取关联的表单模板数量
     *
     * @param activityId 活动ID
     * @return 表单模板数量
     */
    long getCountByActivityId(Integer activityId);

    /**
     * 根据活动ID和模板ID建立关联
     *
     * @param activityId 活动ID
     * @param formId 表单ID
     * @return 操作是否成功
     */
    boolean createRelation(Integer activityId, Integer formId);

    /**
     * 获取指定活动ID的最新版本
     *
     * @param activityId 活动ID
     * @return 最新版本号
     */
    Optional<MpActivityFormRelationEntity> getLatestVersionByActivityId(Integer activityId);
}