54 lines
1.3 KiB
V
54 lines
1.3 KiB
V
module crm
|
|
import base
|
|
|
|
import freeflowuniverse.herolib.data.ourtime
|
|
|
|
// CaseStatus represents the status of a support case
|
|
pub enum CaseStatus {
|
|
new
|
|
assigned
|
|
pending
|
|
closed
|
|
rejected
|
|
duplicate
|
|
}
|
|
|
|
// CasePriority represents the priority of a support case
|
|
pub enum CasePriority {
|
|
low
|
|
medium
|
|
high
|
|
urgent
|
|
}
|
|
|
|
// CaseType represents the type of a support case
|
|
pub enum CaseType {
|
|
question
|
|
incident
|
|
problem
|
|
feature_request
|
|
bug
|
|
}
|
|
|
|
// Case represents a customer support case in the CRM system
|
|
pub struct Case {
|
|
base.Base // Base struct for common fields (id u32, creation_time, mod_time)
|
|
pub mut:
|
|
// id u32 // Removed, provided by base.Base
|
|
number string // Auto-generated case number (e.g., "C-00001")
|
|
name string
|
|
status CaseStatus
|
|
priority CasePriority
|
|
type CaseType
|
|
account_id u32 // Reference to Account
|
|
contact_id u32 // Reference to Contact
|
|
description string
|
|
resolution string // Optional
|
|
solution string // Optional
|
|
resolved_at ourtime.OurTime // 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
|
|
}
|