package com.yc.ship.module.resource.service.resource;


import com.yc.ship.framework.common.pojo.PageResult;
import com.yc.ship.module.resource.controller.admin.resource.vo.ResourceAccessRespVO;
import com.yc.ship.module.resource.controller.admin.resource.vo.ResourcePageReqVO;
import com.yc.ship.module.resource.controller.admin.resource.vo.ResourceSaveReqVO;
import com.yc.ship.module.resource.dal.dataobject.resource.ResourceDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 产品资源 Service 接口
 *
 * @author 管理员
 */
public interface ResourceService {

    /**
     * 创建产品资源
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createResource(@Valid ResourceSaveReqVO createReqVO);

    /**
     * 更新产品资源
     *
     * @param updateReqVO 更新信息
     */
    void updateResource(@Valid ResourceSaveReqVO updateReqVO);

    /**
     * 删除产品资源
     *
     * @param id 编号
     */
    void deleteResource(Long id);

    /**
     * 获得产品资源
     *
     * @param id 编号
     * @return 产品资源
     */
    ResourceDO getResource(Long id);

    /**
     * 获得产品资源分页
     *
     * @param pageReqVO 分页查询
     * @return 产品资源分页
     */
    PageResult<ResourceDO> getResourcePage(ResourcePageReqVO pageReqVO);

    List<ResourceDO> getSimpleResourceList();

    List<ResourceDO> getResourceByCategoryId(Long categoryId);

    /***
     *&#064;Description 获取第三方直连资源列表(jfg、船舶物资)
     *@author qsl
     *@date 2025/8/15 20:34
      *@param supplierId
     *@return 
     */
    List<ResourceAccessRespVO> getProductListByAccessList(String supplierId);
}