48 lines
1.3 KiB
V
48 lines
1.3 KiB
V
module crm
|
|
import base
|
|
|
|
import freeflowuniverse.herolib.data.ourtime
|
|
|
|
// LeadStatus represents the status of a lead
|
|
pub enum LeadStatus {
|
|
new
|
|
assigned
|
|
in_process
|
|
converted
|
|
recycled
|
|
dead
|
|
}
|
|
|
|
// LeadSource represents the source of a lead
|
|
pub enum LeadSource {
|
|
website
|
|
call
|
|
email
|
|
existing_customer
|
|
partner
|
|
public_relations
|
|
campaign
|
|
conference
|
|
trade_show
|
|
word_of_mouth
|
|
other
|
|
}
|
|
|
|
// Lead represents a potential customer in the CRM system
|
|
pub struct Lead {
|
|
base.Base // Base struct for common fields (id u32, creation_time, mod_time)
|
|
pub mut:
|
|
// id u32 // Removed, provided by base.Base
|
|
contact_id u32 // Reference to a Contact (holds name, email, phone etc.)
|
|
description string
|
|
status LeadStatus
|
|
source LeadSource
|
|
opportunity_amount f64 // Optional: If lead is converted, this could be initial amount
|
|
opportunity_name string // Optional: If lead is converted, this could be initial name
|
|
converted_at ourtime.OurTime // Optional: Timestamp when lead was converted
|
|
// created_at ourtime.OurTime // Removed, provided by base.Base.creation_time
|
|
// updated_at ourtime.OurTime // Removed, provided by base.Base.mod_time
|
|
assigned_user_id u32 // Reference to User
|
|
created_by_id u32 // Reference to User
|
|
}
|