export class DomainError extends Error {
    code;
    status;
    details;
    constructor(message, code, status = 422, details) {
        super(message);
        this.code = code;
        this.status = status;
        this.details = details;
        this.name = 'DomainError';
    }
}
export class ForbiddenError extends DomainError {
    constructor(message = 'شما مجوز انجام این عملیات را ندارید.') {
        super(message, 'FORBIDDEN', 403);
    }
}
export class NotFoundError extends DomainError {
    constructor(message = 'رکورد درخواستی یافت نشد.') {
        super(message, 'NOT_FOUND', 404);
    }
}
export class ConflictError extends DomainError {
    constructor(message, code = 'CONFLICT') {
        super(message, code, 409);
    }
}
//# sourceMappingURL=errors.js.map