// Errors thrown by services/controllers; the error middleware turns them into JSON responses. export class AppError extends Error { constructor(status, code, message) { super(message); this.status = status; this.code = code; } } export class BadRequestError extends AppError { constructor(message) { super(400, 'BAD_REQUEST', message); } } export class ForbiddenError extends AppError { constructor(message) { super(403, 'FORBIDDEN', message); } } export class NotFoundError extends AppError { constructor(message) { super(404, 'NOT_FOUND', message); } }