Colony Events Expanded
Events Definition
This file defines the colony events expanded structure within the Roll Claw domain model.
Implementation
Colony Events Expanded Definition
File: domain/events/colony_events_expanded.pseudo
// Colony Events - Expanded Domain Events
// Base Event
class ColonyEvent {
// Identity
string id
// Properties
Date date
Time time
string description
string type
List<Cat> involvedCats
string notes
Person reporter
Location location
// Methods
function getRelatedEvents()
function getCausedBy()
function getImpactedCats()
}
// Cat Lifecycle Events
class BirthEvent extends ColonyEvent {
Cat mother
List<Cat> kittens
Cat fatherIfKnown
RelationshipConfidence paternalConfidence
constructor() {
super.type = "birth"
}
}
class DeathEvent extends ColonyEvent {
string cause // "medical condition", "dog attack", "accident", "euthanasia" etc.
MedicalCondition relatedCondition // if applicable
string circumstanceDetails
constructor() {
super.type = "death"
}
}
class DisappearanceEvent extends ColonyEvent {
Sighting lastSighting
string circumstances
constructor() {
super.type = "disappearance"
}
}
class AdoptionEvent extends ColonyEvent {
Person adopter
string newName // if renamed
constructor() {
super.type = "adoption"
}
}
// Health Events
class MedicalProcedureEvent extends ColonyEvent {
MedicalProvider provider
string procedureType // "spay", "neuter", "vaccination", "dental", etc.
string procedureDetails
string outcome
constructor() {
super.type = "medical_procedure"
}
}
class VaccinationEvent extends MedicalProcedureEvent {
string vaccineType // "rabies", "FIV/FVCP", etc.
Date expirationDate
constructor() {
super.type = "vaccination"
}
}
class TNREvent extends MedicalProcedureEvent {
boolean isEarTipped
string earTippedSide // "left" or "right"
constructor() {
super.type = "tnr"
}
}
class QuarantineEvent extends ColonyEvent {
string reason
Date startDate
Date endDate
string outcome
constructor() {
super.type = "quarantine"
}
}
class InjuryEvent extends ColonyEvent {
string injuryDescription
MedicalCondition resultingCondition
string treatmentProvided
constructor() {
super.type = "injury"
}
}
class IllnessEvent extends ColonyEvent {
string symptoms
string diagnosis
string treatmentPlan
constructor() {
super.type = "illness"
}
}
// Location Events
class RelocationEvent extends ColonyEvent {
Colony sourceColony
Colony destinationColony
string reason
boolean isTemporary
constructor() {
super.type = "relocation"
}
}
class TerritoryChangeEvent extends ColonyEvent {
Location previousMainLocation
Location newMainLocation
string reason
constructor() {
super.type = "territory_change"
}
}
class AccessLevelChangeEvent extends ColonyEvent {
string previousAccess // "outdoor_only", "indoor_access", "indoor_only"
string newAccess
string reason
constructor() {
super.type = "access_change"
}
}
// Social Events
class SocialBondEvent extends ColonyEvent {
List<Cat> catGroup
string bondType // "friendship", "maternal", "paternal", "siblings"
string groupName // e.g., "Diamond Dogs"
constructor() {
super.type = "social_bond"
}
}
class ConflictEvent extends ColonyEvent {
List<Cat> involvedCats
string severity // "mild", "moderate", "severe"
string resolution
constructor() {
super.type = "conflict"
}
}
class IntegrationEvent extends ColonyEvent {
Cat newCat
List<Cat> existingGroup
string outcomeStatus
constructor() {
super.type = "integration"
}
}
// Equipment Events
class EquipmentAddedEvent extends ColonyEvent {
Equipment addedEquipment
Location installation
string purpose
constructor() {
super.type = "equipment_added"
}
}
class EquipmentMaintenanceEvent extends ColonyEvent {
Equipment equipment
string maintenanceType // "cleaning", "repair", "replacement"
string details
constructor() {
super.type = "equipment_maintenance"
}
}
class EquipmentFailureEvent extends ColonyEvent {
Equipment equipment
string failureDescription
string impact
string resolutionPlan
constructor() {
super.type = "equipment_failure"
}
}
// Resource Events
class FeedingScheduleEvent extends ColonyEvent {
string previousSchedule
string newSchedule
string reason
constructor() {
super.type = "feeding_schedule"
}
}
class ResourceDeliveryEvent extends ColonyEvent {
string resourceType // "food", "medication", "supplies", etc.
int quantity
string supplier
Map<string, string> details
constructor() {
super.type = "resource_delivery"
}
}
class ResourceDepletionEvent extends ColonyEvent {
string resourceType
string impact
boolean isEmergency
constructor() {
super.type = "resource_depletion"
}
}
class InventoryCheckEvent extends ColonyEvent {
Map<string, int> inventoryLevels
List<string> neededItems
constructor() {
super.type = "inventory_check"
}
}
// Environmental Events
class WeatherEventImpact extends ColonyEvent {
string weatherCondition // "snow", "rain", "extreme heat", etc.
string impact
string mitigationEfforts
constructor() {
super.type = "weather_impact"
}
}
class ThreatEvent extends ColonyEvent {
string threatType // "stray dog", "construction", "human interference", etc.
string severityLevel
string responseActions
constructor() {
super.type = "threat"
}
}
class EnvironmentalChangeEvent extends ColonyEvent {
string changeType // "construction", "renovation", "landscaping", etc.
string impact
string adaptationPlan
constructor() {
super.type = "environmental_change"
}
}
// Identification Events
class NicknameAssignmentEvent extends ColonyEvent {
Cat cat
string nickname
constructor() {
super.type = "nickname_assignment"
}
}
class MicrochipEvent extends ColonyEvent {
Cat cat
string chipNumber
MedicalProvider provider
constructor() {
super.type = "microchip"
}
}
class IdentityUpdateEvent extends ColonyEvent {
Cat cat
Map<string, string> updatedAttributes // "name", "description", "pattern", etc.
string reason
constructor() {
super.type = "identity_update"
}
}
// Maintenance Events
class LitterBoxMaintenanceEvent extends ColonyEvent {
Equipment litterBox
string maintenanceType // "cleaning", "replacement", "relocation"
string notes
constructor() {
super.type = "litter_box_maintenance"
}
}
class FeedingStationMaintenanceEvent extends ColonyEvent {
Equipment feedingStation
string maintenanceType // "cleaning", "refill", "repair"
string notes
constructor() {
super.type = "feeding_station_maintenance"
}
}
class WaterStationMaintenanceEvent extends ColonyEvent {
Equipment waterStation
string maintenanceType // "cleaning", "refill", "repair"
string notes
constructor() {
super.type = "water_station_maintenance"
}
}
// Colony Status Events
class ColonyStatusChangeEvent extends ColonyEvent {
string previousStatus // "active", "inactive", "relocated"
string newStatus
string reason
constructor() {
super.type = "colony_status_change"
}
}
class CaretakerAssignmentEvent extends ColonyEvent {
Person caretaker
string role // "primary", "backup", "specialist", etc.
string responsibilities
constructor() {
super.type = "caretaker_assignment"
}
}
class ColonyMergeEvent extends ColonyEvent {
Colony sourceColony
Colony targetColony
string reason
List<Cat> relocatedCats
constructor() {
super.type = "colony_merge"
}
}
// Community Events
class VolunteerEvent extends ColonyEvent {
Person volunteer
string activityType
int hoursContributed
string achievements
constructor() {
super.type = "volunteer_activity"
}
}
class CommunityInteractionEvent extends ColonyEvent {
string interactionType // "education", "complaint", "assistance"
Person communityMember
string outcome
constructor() {
super.type = "community_interaction"
}
}
class DonationEvent extends ColonyEvent {
Person donor
string donationType // "financial", "supplies", "equipment"
string value
string allocation
constructor() {
super.type = "donation"
}
}
Related Components
- See the Domain Model Overview for more information on how this component fits into the overall domain model.