import { Product } from '../entities/Product';
import { Result } from '../value-objects/Result';
import { DomainError } from '../errors/DomainError';

export interface IProductRepository {
  findById(id: string): Promise<Result<Product | null, DomainError>>;
  findAll(): Promise<Result<Product[], DomainError>>;
  save(product: Product): Promise<Result<Product, DomainError>>;
  delete(id: string): Promise<Result<void, DomainError>>;
}
