backbone-maintenance 0.7.21

Minimal Backbone Framework module skeleton
Documentation
//! Public events for Maintenance module
//!
//! Generated by metaphor-schema. Do not edit manually.
//!
//! These events are published by this module for other modules to subscribe to.
//! Events are the primary mechanism for cross-module communication.

use serde::{Deserialize, Serialize};
use chrono::{DateTime, Utc};

use super::types::*;

// ============================================================================
// MAINTENANCEREQUEST EVENTS
// ============================================================================

/// Event published when a MaintenanceRequest is created
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceRequestCreatedEvent {
    pub id: MaintenanceRequestId,
    pub data: MaintenanceRequestDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceRequest is updated
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceRequestUpdatedEvent {
    pub id: MaintenanceRequestId,
    pub data: MaintenanceRequestDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceRequest is deleted
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceRequestDeletedEvent {
    pub id: MaintenanceRequestId,
    pub occurred_at: DateTime<Utc>,
}

// ============================================================================
// MAINTENANCESCHEDULE EVENTS
// ============================================================================

/// Event published when a MaintenanceSchedule is created
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceScheduleCreatedEvent {
    pub id: MaintenanceScheduleId,
    pub data: MaintenanceScheduleDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceSchedule is updated
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceScheduleUpdatedEvent {
    pub id: MaintenanceScheduleId,
    pub data: MaintenanceScheduleDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceSchedule is deleted
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceScheduleDeletedEvent {
    pub id: MaintenanceScheduleId,
    pub occurred_at: DateTime<Utc>,
}

// ============================================================================
// MAINTENANCESTAGE EVENTS
// ============================================================================

/// Event published when a MaintenanceStage is created
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceStageCreatedEvent {
    pub id: MaintenanceStageId,
    pub data: MaintenanceStageDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceStage is updated
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceStageUpdatedEvent {
    pub id: MaintenanceStageId,
    pub data: MaintenanceStageDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceStage is deleted
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceStageDeletedEvent {
    pub id: MaintenanceStageId,
    pub occurred_at: DateTime<Utc>,
}

// ============================================================================
// MAINTENANCEVISIT EVENTS
// ============================================================================

/// Event published when a MaintenanceVisit is created
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceVisitCreatedEvent {
    pub id: MaintenanceVisitId,
    pub data: MaintenanceVisitDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceVisit is updated
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceVisitUpdatedEvent {
    pub id: MaintenanceVisitId,
    pub data: MaintenanceVisitDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceVisit is deleted
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceVisitDeletedEvent {
    pub id: MaintenanceVisitId,
    pub occurred_at: DateTime<Utc>,
}

// ============================================================================
// MAINTENANCEVISITPART EVENTS
// ============================================================================

/// Event published when a MaintenanceVisitPart is created
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceVisitPartCreatedEvent {
    pub id: MaintenanceVisitPartId,
    pub data: MaintenanceVisitPartDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceVisitPart is updated
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceVisitPartUpdatedEvent {
    pub id: MaintenanceVisitPartId,
    pub data: MaintenanceVisitPartDto,
    pub occurred_at: DateTime<Utc>,
}

/// Event published when a MaintenanceVisitPart is deleted
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceVisitPartDeletedEvent {
    pub id: MaintenanceVisitPartId,
    pub occurred_at: DateTime<Utc>,
}

// ============================================================================
// MODULE EVENT ENUM
// ============================================================================

/// All events published by Maintenance module
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum MaintenanceEvent {
    MaintenanceRequestCreated(MaintenanceRequestCreatedEvent),
    MaintenanceRequestUpdated(MaintenanceRequestUpdatedEvent),
    MaintenanceRequestDeleted(MaintenanceRequestDeletedEvent),
    MaintenanceScheduleCreated(MaintenanceScheduleCreatedEvent),
    MaintenanceScheduleUpdated(MaintenanceScheduleUpdatedEvent),
    MaintenanceScheduleDeleted(MaintenanceScheduleDeletedEvent),
    MaintenanceStageCreated(MaintenanceStageCreatedEvent),
    MaintenanceStageUpdated(MaintenanceStageUpdatedEvent),
    MaintenanceStageDeleted(MaintenanceStageDeletedEvent),
    MaintenanceVisitCreated(MaintenanceVisitCreatedEvent),
    MaintenanceVisitUpdated(MaintenanceVisitUpdatedEvent),
    MaintenanceVisitDeleted(MaintenanceVisitDeletedEvent),
    MaintenanceVisitPartCreated(MaintenanceVisitPartCreatedEvent),
    MaintenanceVisitPartUpdated(MaintenanceVisitPartUpdatedEvent),
    MaintenanceVisitPartDeleted(MaintenanceVisitPartDeletedEvent),
}

/// Metadata for module events
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MaintenanceEventMetadata {
    pub module: &'static str,
    pub version: &'static str,
}

impl Default for MaintenanceEventMetadata {
    fn default() -> Self {
        Self {
            module: "maintenance",
            version: "1.0",
        }
    }
}

// ============================================================================
// CUSTOM EVENTS
// ============================================================================

// <<< CUSTOM EVENTS START >>>
// Add custom public events here
// <<< CUSTOM EVENTS END >>>