package com.ttstd.signaling.store;

import com.ttstd.signaling.model.UserAccount;

import java.util.List;
import java.util.Optional;

/**
 * 用户账号存储抽象。生产环境由 JPA 实现，测试/演示由内存实现。
 */
public interface UserStore {
    Optional<UserAccount> findByUserId(String userId);
    Optional<UserAccount> findByUsername(String username);
    boolean existsByUsername(String username);
    UserAccount save(UserAccount account);
    List<UserAccount> listAll();

    /** 删除账号。账号不存在时静默返回。 */
    void delete(String userId);
}
