
package com.tmerclub.cloud.group.service;

import com.tmerclub.cloud.group.bo.mongo.MongoGroupTeamBO;
import com.tmerclub.cloud.group.model.GroupTeam;
import com.tmerclub.cloud.group.vo.app.AppGroupTeamVO;

import java.util.List;

/**
 * 拼团团队表
 *
 * @author YXF
 * @date 2021-03-20 10:39:32
 */
public interface GroupTeamService {

    /**
     * 保存到mongodb
     * @param mongoGroupTeamBO
     */
    void saveToMongodb(MongoGroupTeamBO mongoGroupTeamBO);

    /**
     * 批量保存到mongodb
     * @param list
     */
    void saveBatchToMongodb(List<MongoGroupTeamBO> list);

    /**
     * 更新
     * @param groupTeam
     */
    void update(GroupTeam groupTeam);

    /**
     * 根据拼团团队表id获取拼团团队表
     *
     * @param groupTeamId 拼团团队表id
     * @return 拼团团队表
     */
    MongoGroupTeamBO getByGroupTeamId(Long groupTeamId);

    /**
     * 可加入的团列表
     *
     * @param groupActivityId
     * @param showSize
     * @return
     */
    List<AppGroupTeamVO> listJoinGroup(Long groupActivityId, Integer showSize);

    /**
     * 获取拼团团队信息
     * @param groupTeamId
     * @return
     */
    AppGroupTeamVO getAppGroupTeam(Long groupTeamId);

    /**
     * 取消拼团队伍
     * @param groupTeamId
     */
    void cancelGroupTeam(Long groupTeamId);

    /**
     * 更新成成团状态
     * @param groupTeam
     */
    void updateToSuccess(MongoGroupTeamBO groupTeam);

    /**
     * 团购订单失败
     *
     * @param groupTeamId
     */
    void updateToUnSuccess(Long groupTeamId);

    /**
     * 初始化拼团数据到mongodb
     */
    void initGroupTeamToMongo();
}
