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

import cn.reghao.oss.store.model.po.FileMeta;
import cn.reghao.oss.api.dto.ObjectMeta;
import cn.reghao.jutil.jdk.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);

    FileMeta findBySha256sum(String sha256sum);
    FileMeta findByObjectName(String objectName);
    FileMeta findByObjectId(String objectId);
    List<FileMeta> findByContentId(String contentId);
    ObjectMeta findObjectMeta(String objectName);
    ObjectMeta findObjectMetaById(String objectName);

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