...
This commit is contained in:
57
specs/models_older/crm/opportunity.v
Normal file
57
specs/models_older/crm/opportunity.v
Normal file
@@ -0,0 +1,57 @@
|
||||
module crm
|
||||
import base
|
||||
|
||||
import freeflowuniverse.herolib.data.ourtime
|
||||
|
||||
// Opportunity represents a potential sale in the CRM system
|
||||
pub struct Opportunity {
|
||||
base.Base // Base struct for common fields (id u32, creation_time, mod_time)
|
||||
pub mut:
|
||||
// id u32 // Removed, provided by base.Base
|
||||
name string
|
||||
account_id u32 // Reference to Account
|
||||
amount f64
|
||||
close_date ourtime.OurTime // Expected close date
|
||||
probability f64 // Percentage (0-100)
|
||||
stage OpportunityStage
|
||||
source OpportunitySource
|
||||
lead_source string // More specific lead source details if needed
|
||||
campaign_id u32 // Optional: Reference to Campaign
|
||||
description string
|
||||
next_step string // Optional
|
||||
competition string // Optional
|
||||
// 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
|
||||
contacts []u32 // References to Contacts associated with this opportunity
|
||||
}
|
||||
|
||||
// OpportunityStage represents the stage of an opportunity
|
||||
pub enum OpportunityStage {
|
||||
prospecting
|
||||
qualification
|
||||
needs_analysis
|
||||
value_proposition
|
||||
id_decision_makers
|
||||
perception_analysis
|
||||
proposal_price_quote
|
||||
negotiation_review
|
||||
closed_won
|
||||
closed_lost
|
||||
}
|
||||
|
||||
// OpportunitySource represents the source of an opportunity
|
||||
pub enum OpportunitySource {
|
||||
call
|
||||
email
|
||||
existing_customer
|
||||
partner
|
||||
public_relations
|
||||
campaign
|
||||
web_site
|
||||
conference
|
||||
trade_show
|
||||
word_of_mouth
|
||||
other
|
||||
}
|
Reference in New Issue
Block a user