package cn.reghao.tnb.oss.store.db.mapper;

import cn.reghao.jutil.jdk.web.db.Page;
import cn.reghao.tnb.oss.api.dto.ObjectInfo;
import cn.reghao.tnb.oss.store.model.po.FileMeta;
import cn.reghao.tnb.oss.api.dto.ObjectMeta;
import cn.reghao.jutil.jdk.web.db.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author reghao
 * @date 2022-11-24 11:11:06
 */
@Mapper
public interface FileMetaMapper extends BaseMapper<FileMeta> {
    void updateScopeByObjectName(@Param("scope") int scope, @Param("objectName") String objectName);
    void updateObjectDeleted(FileMeta fileMeta);

    FileMeta findBySha256sum(String sha256sum);
    FileMeta findByObjectName(@Param("objectName") String objectName, @Param("owner") int owner);
    FileMeta findByObjectId0(String objectId);
    FileMeta findByObjectId(String objectId);
    List<FileMeta> findByContentId(String contentId);
    ObjectMeta findObjectMetaByName(@Param("objectName") String objectName, @Param("owner") int owner);
    ObjectMeta findObjectMetaById(String objectId);
    int countByPid(String pid);
    List<ObjectInfo> findPidByPage(Page page, @Param("pid") String pid);

    /******************************************************************************************************************/
    List<FileMeta> findAll0(@Param("objectId") String objectId, @Param("max") Integer max, @Param("regex") String regex);
    List<FileMeta> findAll2(@Param("objectId") String objectId, @Param("prefix") String prefix,
                            @Param("start") String start, @Param("max") Integer max);
}
