/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yami.shop.bean.model.Brand;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * BrandMapper接口，继承自BaseMapper<Brand>，用于对品牌相关的数据持久化操作进行定义。
 * 该接口提供了针对品牌数据在数据库层面的查询等方法抽象。
 * @author lanhai
 */
public interface BrandMapper extends BaseMapper<Brand> {

    /**
     * 根据品牌名称获取品牌信息的方法。
     * 此方法会在数据库中查找与给定品牌名称匹配的品牌记录，并返回对应的品牌信息。
     * 如果数据库中不存在该名称的品牌，将返回null（取决于具体数据库查询的结果情况）。
     *
     * @param brandName 要查询的品牌名称，作为查询条件传入数据库查询语句中。
     * @return 返回查找到的Brand类型的品牌信息对象，如果未找到则返回null。
     */
    Brand getByBrandName(String brandName);

    /**
     * 根据分类id获取品牌列表的方法。
     * 它会依据传入的分类id，在数据库中查询出属于该分类下的所有品牌信息，并以列表形式返回。
     * 如果该分类下没有对应的品牌，将返回一个空的列表（List<Brand>类型，长度为0）。
     *
     * @param categoryId 用于指定分类的唯一标识符，通过该参数在数据库中筛选出对应分类下的品牌。
     * @return 返回包含品牌信息的List<Brand>列表，可能为空列表，代表该分类下无品牌。
     */
    List<Brand> listByCategoryId(@Param("categoryId")Long categoryId);
}