58 lines
1.2 KiB
V
58 lines
1.2 KiB
V
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
|
|
}
|