package com.czg.account.service;

import com.czg.account.dto.ShopBranchDTO;
import com.czg.account.param.ShopBranchParam;
import com.mybatisflex.core.paginate.Page;

/**
 * 分店管理Service
 *
 * @author tankaikai
 * @since 2025-04-07 14:09
 */
public interface ShopBranchService {
    /**
     * 查询分店列表
     *
     * @param param 查询入参
     * @return 分店列表
     */
    Page<ShopBranchDTO> findPage(ShopBranchParam param);

    /**
     * 设计数据同步方式
     *
     * @param shopId         主店id
     * @param dataSyncMethod 数据同步方式 {@link com.czg.account.enums.BranchDataSyncMethodEnum}
     */
    void settingDataSyncMethod(Long shopId, String dataSyncMethod);

    /**
     * 数据同步启用
     * @param branchShopId 分店id
     */
    void dataSyncEnable(Long branchShopId);

    /**
     * 账号启用
     * @param branchShopId 分店id
     */
    void accountEnable(Long branchShopId);

    /**
     * 账号禁用
     * @param branchShopId 分店id
     */
    void accountDisable(Long branchShopId);

    /**
     * 查询是否允许分店账号登录
     * @param branchShopId 分店id
     * @return 是否允许分店账号登录 {@code true} 允许，{@code false} 不允许
     */
    boolean isAllowAccountLogin(Long branchShopId);
}
