package com.ttstd.signaling.store;

import com.ttstd.signaling.model.AdminAccount;

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

/**
 * 后台管理员存储抽象。与 {@code UserStore} 互不耦合，JPA 与内存两套实现可切换。
 */
public interface AdminStore {

    AdminAccount save(AdminAccount admin);

    Optional<AdminAccount> findById(String adminId);

    Optional<AdminAccount> findByUsername(String username);

    boolean existsByUsername(String username);

    boolean existsById(String adminId);

    List<AdminAccount> findAll();

    long count();

    void delete(String adminId);
}
