package com.lesingle.edu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lesingle.edu.dto.request.GrowthRecordCreateRequest;
import com.lesingle.edu.dto.request.GrowthRecordUpdateRequest;
import com.lesingle.edu.entity.GrowthRecord;

import java.util.List;

/**
 * 成长记录服务接口
 */
public interface GrowthRecordService extends com.baomidou.mybatisplus.extension.service.IService<GrowthRecord> {

    GrowthRecord createGrowthRecord(Long tenantId, Long recorderId, String recorderRole, GrowthRecordCreateRequest request);

    GrowthRecord updateGrowthRecord(Long id, GrowthRecordUpdateRequest request);

    GrowthRecord updateGrowthRecordWithTenantCheck(Long id, Long tenantId, GrowthRecordUpdateRequest request);

    GrowthRecord getGrowthRecordById(Long id);

    GrowthRecord getGrowthRecordByIdWithTenantCheck(Long id, Long tenantId);

    Page<GrowthRecord> getGrowthRecordPage(Long tenantId, Integer pageNum, Integer pageSize, Long studentId, String type);

    Page<GrowthRecord> getGrowthRecordsByStudentId(Long studentId, Integer pageNum, Integer pageSize, String type);

    void deleteGrowthRecord(Long id);

    void deleteGrowthRecordWithTenantCheck(Long id, Long tenantId);

    List<GrowthRecord> getRecentGrowthRecords(Long studentId, Integer limit);

}
