package com.agileboot.system.config.dto;

import com.agileboot.common.mybatis.core.page.PageQuery;
import com.agileboot.system.config.entity.SysConfig;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;

/**
 * 配置查询参数
 */
@Data
@NoArgsConstructor
public class ConfigQuery extends PageQuery<SysConfig> {

    // 配置名称
    private String configName;

    // 配置key
    private String configKey;

    // 是否允许更改配置
    private Boolean isAllowChange;

    @Override
    public LambdaQueryWrapper<SysConfig> toQueryWrapper() {
        return Wrappers.lambdaQuery(SysConfig.class)
                .like(StringUtils.isNotEmpty(configName), SysConfig::getConfigName, configName)
                .eq(StringUtils.isNotEmpty(configKey), SysConfig::getConfigKey, configKey)
                .eq(isAllowChange != null, SysConfig::getIsAllowChange, isAllowChange)
                .orderByDesc(SysConfig::getCreateTime);
    }
}
