export abstract class ServiceError extends Error { constructor(message: string, readonly status: number, readonly data?: TData) { super(message); } toJSON() { return { status: this.status, message: this.message, data: this.data, }; } } export class CustomServiceError extends ServiceError { constructor(message = "Custom Error", data?: TData) { super(message, 400, data); } }