113 lines
4.1 KiB
Go
113 lines
4.1 KiB
Go
package persona
|
|
|
|
// Psychology contains the complete psychological profile.
|
|
type Psychology struct {
|
|
// HEXACO personality model
|
|
HEXACO HEXACOProfile `json:"hexaco" yaml:"hexaco"`
|
|
|
|
// Attachment style and patterns
|
|
Attachment AttachmentStyle `json:"attachment" yaml:"attachment"`
|
|
|
|
// Values core beliefs and principles
|
|
Values Values `json:"values" yaml:"values"`
|
|
}
|
|
|
|
// HEXACOProfile represents the six-factor personality model.
|
|
// Each dimension is scored 1-10 with facets and behavioral implications.
|
|
type HEXACOProfile struct {
|
|
// HonestyHumility: sincerity, fairness, greed-avoidance, modesty
|
|
HonestyHumility TraitScore `json:"honesty_humility" yaml:"honesty_humility"`
|
|
|
|
// Emotionality: fearfulness, anxiety, dependence, sentimentality
|
|
Emotionality TraitScore `json:"emotionality" yaml:"emotionality"`
|
|
|
|
// Extraversion: social self-esteem, boldness, sociability, liveliness
|
|
Extraversion TraitScore `json:"extraversion" yaml:"extraversion"`
|
|
|
|
// Agreeableness: forgivingness, gentleness, flexibility, patience
|
|
Agreeableness TraitScore `json:"agreeableness" yaml:"agreeableness"`
|
|
|
|
// Conscientiousness: organization, diligence, perfectionism, prudence
|
|
Conscientiousness TraitScore `json:"conscientiousness" yaml:"conscientiousness"`
|
|
|
|
// Openness: aesthetic appreciation, inquisitiveness, creativity, unconventionality
|
|
Openness TraitScore `json:"openness" yaml:"openness"`
|
|
}
|
|
|
|
// TraitScore represents a single HEXACO dimension.
|
|
type TraitScore struct {
|
|
// Score from 1 (very low) to 10 (very high)
|
|
Score int `json:"score" yaml:"score"`
|
|
|
|
// Facets map facet names to levels (high/mid/low)
|
|
Facets map[string]string `json:"facets,omitempty" yaml:"facets,omitempty"`
|
|
|
|
// BehavioralImplications describes how this shows in behavior
|
|
BehavioralImplications string `json:"behavioral_implications,omitempty" yaml:"behavioral_implications,omitempty"`
|
|
}
|
|
|
|
// Level returns a descriptive level for the score.
|
|
func (t TraitScore) Level() string {
|
|
switch {
|
|
case t.Score <= 3:
|
|
return "low"
|
|
case t.Score <= 7:
|
|
return "moderate"
|
|
default:
|
|
return "high"
|
|
}
|
|
}
|
|
|
|
// AttachmentStyle represents relationship attachment patterns.
|
|
type AttachmentStyle struct {
|
|
// Primary attachment style (secure, anxious, avoidant, disorganized)
|
|
Primary string `json:"primary" yaml:"primary"`
|
|
|
|
// Pattern detailed description of the pattern
|
|
Pattern string `json:"pattern,omitempty" yaml:"pattern,omitempty"`
|
|
|
|
// Triggers what activates attachment behaviors
|
|
Triggers []string `json:"triggers,omitempty" yaml:"triggers,omitempty"`
|
|
|
|
// GrowthEdge area of potential development
|
|
GrowthEdge string `json:"growth_edge,omitempty" yaml:"growth_edge,omitempty"`
|
|
}
|
|
|
|
// Values contains core beliefs and principles.
|
|
type Values struct {
|
|
// Core top 5 values
|
|
Core []string `json:"core,omitempty" yaml:"core,omitempty"`
|
|
|
|
// LifePhilosophy guiding principle
|
|
LifePhilosophy string `json:"life_philosophy,omitempty" yaml:"life_philosophy,omitempty"`
|
|
|
|
// Spirituality relationship with spirituality/religion
|
|
Spirituality string `json:"spirituality,omitempty" yaml:"spirituality,omitempty"`
|
|
|
|
// Political general political stance (if any)
|
|
Political string `json:"political,omitempty" yaml:"political,omitempty"`
|
|
}
|
|
|
|
// ValidAttachmentStyles are the valid primary attachment styles.
|
|
var ValidAttachmentStyles = []string{"secure", "anxious", "avoidant", "disorganized"}
|
|
|
|
// IsValidAttachmentStyle returns true if the style is valid.
|
|
func IsValidAttachmentStyle(style string) bool {
|
|
for _, v := range ValidAttachmentStyles {
|
|
if v == style {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
// HEXACOFacets defines the facets for each HEXACO dimension.
|
|
var HEXACOFacets = map[string][]string{
|
|
"honesty_humility": {"sincerity", "fairness", "greed_avoidance", "modesty"},
|
|
"emotionality": {"fearfulness", "anxiety", "dependence", "sentimentality"},
|
|
"extraversion": {"social_self_esteem", "boldness", "sociability", "liveliness"},
|
|
"agreeableness": {"forgivingness", "gentleness", "flexibility", "patience"},
|
|
"conscientiousness": {"organization", "diligence", "perfectionism", "prudence"},
|
|
"openness": {"aesthetic_appreciation", "inquisitiveness", "creativity", "unconventionality"},
|
|
}
|