package com.mcwl.resource.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.mcwl.common.core.domain.R;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.resource.domain.ModelProduct;
import com.mcwl.resource.domain.dto.ModelImagePageRes;
import com.mcwl.resource.domain.response.ResponseModelProduct;
import com.mcwl.resource.domain.request.RequestModel;
import com.mcwl.resource.domain.vo.MallProductVo;
import com.mcwl.resource.domain.vo.PageVo;

import java.util.List;

/**
 * @Author：ChenYan
 * @Project：McWl
 * @Package：com.mcwl.resource.service
 * @Filename：MallProductServiceImpl
 * @Description TODO
 * @Date：2024/12/30 18:20
 */
public interface ModelService extends IService<ModelProduct> {

    Page<ModelProduct> selectByUserId(MallProductVo mallProductVo);

    Page<ModelProduct> pageLike(MallProductVo mallProductVo, List<Long> list);

    TableDataInfo listByPage(ModelImagePageRes imagePageRes);

    R<String> addModel(RequestModel requestModel);


    void updaModel(RequestModel requestModel);

    R<ModelProduct> selectModelById(Long id);

    void setModelTop(Long id, boolean isTop);

    List<ModelProduct> fetchModelsSortedByTopStatus();


    PageInfo<ResponseModelProduct> modelSquare(PageVo pageVo);

    R selectModelByName(String name);

}
