package shop.alien.storeplatform.service;

import shop.alien.entity.store.StoreUser;
import shop.alien.entity.store.vo.StoreUserVo;

import java.util.Map;

/**
 * web端商户用户管理服务接口
 *
 * @author ssk
 * @since 2025-01-xx
 */
public interface MerchantUserService {

    /**
     * 根据手机号获取商户用户信息
     *
     * @param phone 手机号
     * @return StoreUserVo
     */
    StoreUserVo getMerchantByPhone(String phone);

    /**
     * 修改商户用户信息
     *
     * @param storeUser 用户信息（包含id和需要修改的字段）
     * @return 是否修改成功
     */
    boolean updateMerchantUserInfo(StoreUser storeUser);

    /**
     * 检查用户是否设置支付密码（可选验证密码）
     *
     * @param storeUserId 用户ID
     * @param password    支付密码（可选，如果提供则验证密码是否正确）
     * @return 包含验证结果的Map
     */
    Map<String, Object> checkPayPassword(String storeUserId, String password);

    /**
     * 设置/修改支付密码
     *
     * @param id          用户ID
     * @param payPassword 支付密码
     * @return 是否设置成功
     */
    boolean setPayPassword(Integer id, String payPassword);

    /**
     * 添加/修改支付宝账号
     *
     * @param userId         用户ID
     * @param alipayAccount  支付宝账号
     * @return 影响的行数
     */
    Integer addAlipayAccount(Integer userId, String alipayAccount);

    /**
     * 删除支付宝账号
     *
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteAlipayAccount(Integer userId);

    /**
     * 重置商户到刚注册状态
     * （一键退回：删除店铺申请、解绑店铺、清理相关数据）
     *
     * @return 是否重置成功
     */
    boolean resetToInitialStatus();
}


