package com.convenient.android.common.media.config

import java.io.File

/**
 * @classname:
 * @author: LiuXiaoLong
 * @date: 2022/8/2
 * description: 文件媒体查询的配置
 */
data class MediaQueryConfig(
    /**
     * 升序降序
     */
    var order: MediaSortOrder = MediaSortOrder.DESC,
    /**
     * 排序方式
     */
    var sortType : MediaSortType = MediaSortType.DATE,
    /**
     * 忽略的子目录或文件路径，要完整路径
     * 不管是文件还是文件夹，只要向匹配就忽略，
     */
    var ignoreChildFiles: List<File> = mutableListOf(),

    /**
     * 支持查询的文件格式
     * 根据文件名称后缀 进行判断 例如：png jpg
     * 都使用小写
     */
    var supportMimeTypes: List<String> = mutableListOf(),

    /**
     * 返回的结果中中是否包含文件夹
     * 仅在FileMedia中生效
     * 仅在FileMedia中生效
     * 仅在FileMedia中生效
     */
    var includeFolder : Boolean = false,


    /**
     * 是否递归出该目录下所有子文件夹数据
     * 仅FileStore有效
     * MediaStore会返回文件夹下所有文件，如果需要控制筛选，查询后自行筛选
     */
    var recursively : Boolean = false,


    /**
     * 分页查询配置
     * 仅MediaStore查询有效
     */
    var page : Page = Page()

)

/**
 * MediaStore分页查询类
 * @param pageNum 页码
 * @param pageSize 每页查询的数量，如果为 Int.MAX_VALUE 则不分页，直接返回所有数据
 */
data class Page(
    var pageNum : Int = 1,
    var pageSize : Int = Int.MAX_VALUE
)





