package com.jeesharp.business.modules.member.service;

import com.jeesharp.business.modules.member.entity.MemberVisitor;

import java.util.List;

/**
 * 会员常用游客领域服务：按会员维度查询、唯一性校验与持久化。
 *
 * @author jeesharp
 * @since 2026-05-12
 */
public interface MemberVisitorService {

    /**
     * 当前会员下未删除的游客列表（按排序号、创建时间倒序）。
     */
    List<MemberVisitor> listByMemberId(String memberId);

    /**
     * 统计当前会员下未删除条数。
     */
    long countByMemberId(String memberId);

    /**
     * 按主键与会员校验后获取一条；无权限或已删返回 null。
     */
    MemberVisitor getOwned(String id, String memberId);

    /**
     * 同一会员下身份证号是否已存在（可排除自身主键）。
     */
    boolean existsIdCardForMember(String memberId, String idCardUpper, String excludeId);

    /**
     * 新增游客。
     */
    void insert(MemberVisitor entity);

    /**
     * 更新游客。
     */
    void updateEntity(MemberVisitor entity);

    /**
     * 逻辑删除。
     */
    void removeOwned(String id, String memberId);
}
