classDiagram direction TB class QuoteGroup { locator : string name : string createdAt : datetime createdBy : string quoteLocators : string[] quoteGroupNumber : string? quoteGroupState : QuoteGroupState settings : QuoteGroupSettings } class QuoteGroupSettings { enforceProductUniformity : boolean stateUniqueness : StateUniqueness fieldEnforcementDeclarations : FieldEnforcementDeclaration[] } class StateUniqueness { <> draft validated earlyUnderwritten priced underwritten accepted issued underwrittenBlocked declined rejected refused discarded } class FieldEnforcementDeclaration { name : string paths : map[string, string] } class QuoteGroupState { <> open locked } QuoteGroup --> QuoteGroupSettings : settings QuoteGroupSettings --> StateUniqueness : stateUniqueness QuoteGroupSettings --> FieldEnforcementDeclaration : fieldEnforcementDeclarations QuoteGroup --> QuoteGroupState : quoteGroupState style QuoteGroup fill:#F5F9FF,stroke:#2B6CB0,stroke-width:2px,color:#1A365D style QuoteGroupSettings fill:#F0FFF4,stroke:#2F855A,stroke-width:2px,color:#1C4532 style StateUniqueness fill:#FFF5F5,stroke:#C53030,stroke-width:2px,color:#742A2A style FieldEnforcementDeclaration fill:#F7F5FF,stroke:#6B46C1,stroke-width:2px,color:#44337A style QuoteGroupState fill:#FFF5F5,stroke:#C53030,stroke-width:2px,color:#742A2A