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