import { EmailAddress, UniqueID } from "@/core/common/domain";
import { Collection, Result } from "@repo/rdx-utils";
import { User } from "../aggregates";

export interface IUserRepository {
  findAll(transaction?: any): Promise<Result<Collection<User>, Error>>;
  findById(id: UniqueID, transaction?: any): Promise<Result<User, Error>>;
  findByEmail(email: EmailAddress, transaction?: any): Promise<Result<User, Error>>;
}
