import { Store } from '../entities/store.entity';

export const STORE_REPOSITORY = Symbol('IStoreRepository');

export interface IStoreRepository {
  findById(id: string): Promise<Store | null>;
  create(data: Partial<Store>): Promise<Store>;
  save(store: Store): Promise<Store>;
  delete(id: string): Promise<void>;
  count(where?: Partial<Record<string, any>>): Promise<number>;
  findByIssuerId(
    issuerId: string,
    filters?: { level?: string; parentId?: string; status?: string },
  ): Promise<Store[]>;
  findByIssuerIds(issuerIds: string[]): Promise<Store[]>;
  findTopStores(limit: number): Promise<Store[]>;
}
