db/specs/modelsold/crm/campaign.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
}