package cn.aqroid.business.customer.mapper;

import java.util.List;

import cn.aqroid.business.customer.domain.Customer;
import cn.aqroid.common.annotation.TenantIgnore;

/**
 * 顾客Mapper接口
 * 
 * 注意：顾客表是跨租户的，使用@TenantIgnore注解
 *
 * @author aqroid
 * @date 2026-01-12
 */
@TenantIgnore
public interface CustomerMapper {

    /**
     * 根据openid查询顾客
     *
     * @param openid 微信openid
     * @return 顾客信息
     */
    Customer selectByOpenid(String openid);

    /**
     * 根据ID查询顾客
     *
     * @param id 顾客ID
     * @return 顾客信息
     */
    Customer selectById(Long id);

    /**
     * 根据手机号查询顾客
     *
     * @param phone 手机号
     * @return 顾客信息
     */
    Customer selectByPhone(String phone);

    /**
     * 查询顾客列表
     *
     * @param customer 顾客查询条件
     * @return 顾客列表
     */
    List<Customer> selectCustomerList(Customer customer);

    /**
     * 新增顾客
     *
     * @param customer 顾客信息
     * @return 影响行数
     */
    int insertCustomer(Customer customer);

    /**
     * 更新顾客信息
     *
     * @param customer 顾客信息
     * @return 影响行数
     */
    int updateCustomer(Customer customer);

    /**
     * 更新最后登录时间
     *
     * @param id 顾客ID
     * @return 影响行数
     */
    int updateLastLoginTime(Long id);

    /**
     * 删除顾客
     *
     * @param id 顾客ID
     * @return 影响行数
     */
    int deleteById(Long id);
}
