/**
 * Erreurs métier personnalisées
 */
export class BusinessError extends Error {
  constructor(message: string, public code?: string) {
    super(message);
    this.name = "BusinessError";
  }
}

export class ValidationError extends BusinessError {
  constructor(message: string, public field?: string) {
    super(message, "VALIDATION_ERROR");
    this.name = "ValidationError";
  }
}

export class NotFoundError extends BusinessError {
  constructor(resource: string) {
    super(`${resource} non trouvé`, "NOT_FOUND");
    this.name = "NotFoundError";
  }
}

export class ConflictError extends BusinessError {
  constructor(message: string) {
    super(message, "CONFLICT");
    this.name = "ConflictError";
  }
}

