module crm import base import freeflowuniverse.herolib.data.ourtime // CampaignStatus represents the status of a marketing campaign pub enum CampaignStatus { planning active inactive complete canceled } // CampaignType represents the type of a marketing campaign pub enum CampaignType { email newsletter web television radio mail print social_media telemarketing event other } // Campaign represents a marketing campaign in the CRM system pub struct Campaign { base.Base // Base struct for common fields (id u32, creation_time, mod_time) pub mut: name string status CampaignStatus type CampaignType start_date ourtime.OurTime end_date ourtime.OurTime budget f64 expected_revenue f64 expected_cost f64 actual_cost f64 objective string description string target_audience string sent_count u32 open_count u32 click_count u32 bounce_count u32 opt_out_count u32 lead_count u32 opportunity_count u32 revenue f64 roi f64 // Return on Investment assigned_user_id u32 // Reference to User created_by_id u32 // Reference to User }