package com.seer.teach.mp.app.service;

import com.seer.teach.mp.app.controller.req.AppMpSignUpActivityReq;
import com.seer.teach.mp.app.controller.req.TestChildCharacterReq;
import com.seer.teach.mp.app.controller.resp.AppMpSignUpActivityResp;
import com.seer.teach.mp.app.controller.resp.TestChildCharacterResp;

/**
 * <p>
 * 家长参与代理商活动服务类
 * </p>
 *
 * @author Lingma
 * @since 2025-12-30
 */
public interface IAppParentAgentActivityService {

    /**
     * 报名活动
     *
     * @param request 报名信息
     * @param parentId 家长ID
     * @return true表示成功，false表示失败
     */
    boolean signUpForActivityWithInfo(AppMpSignUpActivityReq request, Integer parentId);

    /**
     * 更新活动信息
     *
     * @param request 活动信息
     * @param parentId 家长ID
     * @return true表示成功，false表示失败
     */
    boolean updateActivityInfo(AppMpSignUpActivityReq request, Integer parentId);

    /**
     * 取消报名
     *
     * @param id       关系ID
     * @param parentId 家长ID
     * @return true表示成功，false表示失败
     */
    boolean cancelSignUp(Integer id, Integer parentId);

    /**
     * 获取报名信息
     *
     * @param agentId 代理商ID
     * @param activityId 活动ID
     * @param parentId 家长ID
     * @return 报名信息
     */
    AppMpSignUpActivityResp getByActivityIdAndParentId(Integer agentId, Integer activityId, Integer parentId);

    /**
     * 测试孩子性格
     *
     * @param request 测试请求对象
     * @param parentId 家长ID
     * @return 性格测试结果
     */
    TestChildCharacterResp testChildCharacter(TestChildCharacterReq request, Integer parentId);
}