export class AppError extends Error { public readonly statusCode: number; constructor(message: string, statusCode: number) { super(message); this.name = this.constructor.name; this.statusCode = statusCode; } } export class ValidationError extends AppError { constructor(message: string) { super(message, 400); } } export class NotFoundError extends AppError { constructor(message: string) { super(message, 404); } } export class ConflictError extends AppError { constructor(message: string) { super(message, 409); } }