package com.red.circle.console.app.service.app.team;


import com.red.circle.console.app.dto.clienobject.team.TeamBillCycleCO;
import com.red.circle.other.inner.model.cmd.team.TeamBillCycleBackQryCmd;
import com.red.circle.other.inner.model.cmd.team.TeamBillExportCmd;
import com.red.circle.other.inner.model.cmd.team.TeamBillRemarkCmd;
import com.red.circle.other.inner.model.cmd.team.TeamBillRemarkIdCmd;
import com.red.circle.other.inner.model.cmd.team.TeamBillStatusChangeCmd;
import com.red.circle.other.inner.model.cmd.team.TeamCalculatorWorkCmd;
import com.red.circle.other.inner.model.dto.agency.agency.TeamCalculatorWorkResultDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamRemarkDTO;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 团队账单服务.
 *
 * @author pengliang on 2022/12/13
 */
public interface TeamBillBackService {

  /**
   * 账单列表查询.
   */
  List<TeamBillCycleCO> listBillTable(TeamBillCycleBackQryCmd query);

  /**
   * 添加备注.
   */
  TeamRemarkDTO addInternalRemarks(TeamBillRemarkCmd param);

  /**
   * 移除备注.
   */
  void delInternalRemarks(TeamBillRemarkIdCmd param);

  /**
   * 修改备注.
   */
  void updateRemarks(TeamBillRemarkCmd param);

  /**
   * 修改账单状态.
   */
  void updateBillStatus(TeamBillStatusChangeCmd param);

  /**
   * 计算团队工作.
   */
  TeamCalculatorWorkResultDTO calculatorWork(TeamCalculatorWorkCmd param);

  /**
   * 导出主播账单数据.
   */
  void export(HttpServletResponse response, TeamBillExportCmd param);


}
