UNPKG

mcp-quiz-server

Version:

🧠 AI-Powered Quiz Management via Model Context Protocol (MCP) - Create, manage, and take quizzes directly from VS Code, Claude, and other AI agents.

87 lines (86 loc) • 2.33 kB
"use strict"; /** * @fileoverview Quiz Deleted Domain Event - Clean Architecture Domain Layer * @version 1.0.0 * @since 2025-07-30 * @module QuizDeletedEvent * @description Domain event published when a quiz is deleted * * @architecture * Layer: Domain (Events) * Pattern: Domain Event Pattern * Dependencies: DomainEvent base class * * @relationships * PUBLISHED_BY: * - DeleteQuizCommandHandler (Application Layer) * CONSUMED_BY: * - Event handlers (Infrastructure) * - Notification services (Infrastructure) * * @contributors Claude Code Agent * @testCoverage Event tests, integration tests */ Object.defineProperty(exports, "__esModule", { value: true }); exports.QuizDeletedEvent = void 0; const DomainEvent_1 = require("./DomainEvent"); /** * Quiz Deleted Domain Event * * @description Published when a quiz is successfully deleted from the system. * Contains audit information and metadata for tracking. * * @example * ```typescript * const event = new QuizDeletedEvent({ * quizId: 'quiz-123', * quizTitle: 'Math Quiz', * deletedAt: '2025-07-30T10:00:00Z', * deletedBy: 'admin-user', * reason: 'Outdated content' * }); * ``` * * @since 2025-07-30 * @author Claude Code Agent */ class QuizDeletedEvent extends DomainEvent_1.DomainEvent { constructor(data) { super('QuizDeleted'); this.quizId = data.quizId; this.quizTitle = data.quizTitle; this.deletedAt = data.deletedAt; this.deletedBy = data.deletedBy; this.reason = data.reason; this.metadata = data.metadata || {}; } /** * Get the aggregate ID (Quiz ID) that this event relates to */ getAggregateId() { return this.quizId; } /** * Get event data for serialization */ getEventData() { return { quizId: this.quizId, quizTitle: this.quizTitle, deletedAt: this.deletedAt, deletedBy: this.deletedBy, reason: this.reason, metadata: this.metadata, }; } /** * Legacy method for backward compatibility */ getData() { return { eventType: this.eventType, ...this.getEventData(), }; } } exports.QuizDeletedEvent = QuizDeletedEvent;