@startuml
skinparam monochrome true
skinparam ClassBackgroundColor White
hide empty members
hide circle
skinparam defaultFontName Arial
skinparam defaultFontSize 11
class "<b>Lakeside Mutual : Product/System</b>" as __1_Lakeside_Mutual
class "<b>Customer Core : Microservice</b>" as __2_Customer_Core
class "<b>CityStaticDataHolder : Api</b>\n<b>Interface</b>" as __3_CityStaticDataHolder
class "<b>getCitiesForPostalCode : Api</b>\n<b>Operation</b>" as __4_getCitiesForPostalCode
class "<b>getCitiesForPostalCode : Connection</b>\n<b>Operation</b>" as __5_getCitiesForPostalCode
class "<b>CustomerCoreRemoteProxy : Connection</b>" as __6_CustomerCoreRemoteProxy
class "<b>getCustomer : Connection Operation</b>" as __7_getCustomer
class "<b>getCustomer : Api Operation</b>" as __8_getCustomer
class "<b>CustomerInformationHolder</b>\n<b>: Api Interface</b>" as __9_CustomerInformationHolder
class "<b>changeAddress : Api Operation</b>" as __10_changeAddress
class "<b>save : Persistence Operation</b>" as __11_save
class "<b>CustomerRepository : Persistence</b>\n<b>Store</b>" as __12_CustomerRepository
class "<b>saveAll : Persistence Operation</b>" as __13_saveAll
class "<b>findById : Persistence Operation</b>" as __14_findById
class "<b>updateCustomer : Api Operation</b>" as __15_updateCustomer
class "<b>updateCustomer : Connection</b>\n<b>Operation</b>" as __16_updateCustomer
class "<b>CustomerCoreClient : Connection</b>" as __17_CustomerCoreClient
class "<b>getCustomers : Connection</b>\n<b>Operation</b>" as __18_getCustomers
class "<b>getCustomers : Api Operation</b>" as __19_getCustomers
class "<b>CustomerInformationHolder</b>\n<b>: Api Interface</b>" as __20_CustomerInformationHolder
class "<b>Customer Management Backend</b>\n<b>: Microservice</b>" as __21_Customer_Management_Backend
class "<b>InteractionLogInformationHolder</b>\n<b>: Api Interface</b>" as __22_InteractionLogInformationHolder
class "<b>getInteractionLog : Api Operation</b>" as __23_getInteractionLog
class "<b>findById : Persistence Operation</b>" as __24_findById
class "<b>InteractionLogRepository : Persistence</b>\n<b>Store</b>" as __25_InteractionLogRepository
class "<b>save : Persistence Operation</b>" as __26_save
class "<b>acknowledgeInteractions : Api</b>\n<b>Operation</b>" as __27_acknowledgeInteractions
class "<b>saveAll : Persistence Operation</b>" as __28_saveAll
class "<b>count : Persistence Operation</b>" as __29_count
class "<b>findAll : Persistence Operation</b>" as __30_findAll
class "<b>broadcastNotifications : Connection</b>\n<b>Operation</b>" as __31_broadcastNotifications
class "<b>CustomerMessageController</b>\n<b>: Connection</b>" as __32_CustomerMessageController
class "<b>broadcastNotifications : Connection</b>\n<b>Operation</b>" as __33_broadcastNotifications
class "<b>getCustomer : Api Operation</b>" as __34_getCustomer
class "<b>getCustomer : Connection Operation</b>" as __35_getCustomer
class "<b>updateCustomer : Api Operation</b>" as __36_updateCustomer
class "<b>getCustomers : Api Operation</b>" as __37_getCustomers
class "<b>findAll : Persistence Operation</b>" as __38_findAll
class "<b>getCustomers : Connection</b>\n<b>Operation</b>" as __39_getCustomers
class "<b>CustomerCoreRemoteProxy : Connection</b>" as __40_CustomerCoreRemoteProxy
class "<b>getCustomersById : Connection</b>\n<b>Operation</b>" as __41_getCustomersById
class "<b>createPolicy : Api Operation</b>" as __42_createPolicy
class "<b>PolicyInformationHolder : Api</b>\n<b>Interface</b>" as __43_PolicyInformationHolder
class "<b>Policy Management Backend</b>\n<b>: Microservice</b>" as __44_Policy_Management_Backend
class "<b>InsuranceQuoteRequestMessageConsumer</b>\n<b>: Api Interface</b>" as __45_InsuranceQuoteRequestMessageConsumer
class "<b>receiveInsuranceQuoteRequest</b>\n<b>: Api Operation</b>" as __46_receiveInsuranceQuoteRequest
class "<b>emitInsuranceQuoteRequestEvent</b>\n<b>: Connection Operation</b>" as __47_emitInsuranceQuoteRequestEvent
class "<b>PolicyManagementMessageProducer</b>\n<b>: Connection</b>" as __48_PolicyManagementMessageProducer
class "<b>emitCustomerDecisionEvent</b>\n<b>: Connection Operation</b>" as __49_emitCustomerDecisionEvent
class "<b>receiveCustomerDecision : Api</b>\n<b>Operation</b>" as __50_receiveCustomerDecision
class "<b>CustomerDecisionMessageConsumer</b>\n<b>: Api Interface</b>" as __51_CustomerDecisionMessageConsumer
class "<b>sendInsuranceQuoteExpiredEvent</b>\n<b>: Connection Operation</b>" as __52_sendInsuranceQuoteExpiredEvent
class "<b>CustomerSelfServiceMessageProducer</b>\n<b>: Connection</b>" as __53_CustomerSelfServiceMessageProducer
class "<b>sendInsuranceQuoteResponseEvent</b>\n<b>: Connection Operation</b>" as __54_sendInsuranceQuoteResponseEvent
class "<b>respondToInsuranceQuoteRequest</b>\n<b>: Api Operation</b>" as __55_respondToInsuranceQuoteRequest
class "<b>InsuranceQuoteRequestInformationHolder</b>\n<b>: Api Interface</b>" as __56_InsuranceQuoteRequestInformationHolder
class "<b>getInsuranceQuoteRequest : Api</b>\n<b>Operation</b>" as __57_getInsuranceQuoteRequest
class "<b>findById : Persistence Operation</b>" as __58_findById
class "<b>InsuranceQuoteRequestRepository</b>\n<b>: Persistence Store</b>" as __59_InsuranceQuoteRequestRepository
class "<b>save : Persistence Operation</b>" as __60_save
class "<b>saveAll : Persistence Operation</b>" as __61_saveAll
class "<b>count : Persistence Operation</b>" as __62_count
class "<b>findAll : Persistence Operation</b>" as __63_findAll
class "<b>receiveInsuranceQuoteResponse</b>\n<b>: Api Operation</b>" as __64_receiveInsuranceQuoteResponse
class "<b>InsuranceQuoteResponseMessageConsumer</b>\n<b>: Api Interface</b>" as __65_InsuranceQuoteResponseMessageConsumer
class "<b>Customer Self Service Backend</b>\n<b>: Microservice</b>" as __66_Customer_Self_Service_Backend
class "<b>PolicyCreatedMessageConsumer</b>\n<b>: Api Interface</b>" as __67_PolicyCreatedMessageConsumer
class "<b>receivePolicyCreatedEvent</b>\n<b>: Api Operation</b>" as __68_receivePolicyCreatedEvent
class "<b>save : Persistence Operation</b>" as __69_save
class "<b>InsuranceQuoteRequestRepository</b>\n<b>: Persistence Store</b>" as __70_InsuranceQuoteRequestRepository
class "<b>saveAll : Persistence Operation</b>" as __71_saveAll
class "<b>findById : Persistence Operation</b>" as __72_findById
class "<b>receiveInsuranceQuoteExpiredEvent</b>\n<b>: Api Operation</b>" as __73_receiveInsuranceQuoteExpiredEvent
class "<b>InsuranceQuoteExpiredMessageConsumer</b>\n<b>: Api Interface</b>" as __74_InsuranceQuoteExpiredMessageConsumer
class "<b>count : Persistence Operation</b>" as __75_count
class "<b>findAll : Persistence Operation</b>" as __76_findAll
class "<b>sendPolicyCreatedEvent : Connection</b>\n<b>Operation</b>" as __77_sendPolicyCreatedEvent
class "<b>AuthenticationController : Api</b>\n<b>Interface</b>" as __78_AuthenticationController
class "<b>authenticationRequest : Api</b>\n<b>Operation</b>" as __79_authenticationRequest
class "<b>signupUser : Api Operation</b>" as __80_signupUser
class "<b>save : Persistence Operation</b>" as __81_save
class "<b>UserLoginRepository : Persistence</b>\n<b>Store</b>" as __82_UserLoginRepository
class "<b>saveAll : Persistence Operation</b>" as __83_saveAll
class "<b>findById : Persistence Operation</b>" as __84_findById
class "<b>count : Persistence Operation</b>" as __85_count
class "<b>findAll : Persistence Operation</b>" as __86_findAll
class "<b>CityStaticDataHolder : Api</b>\n<b>Interface</b>" as __87_CityStaticDataHolder
class "<b>getCitiesForPostalCode : Api</b>\n<b>Operation</b>" as __88_getCitiesForPostalCode
class "<b>emitEvent : Connection Operation</b>" as __89_emitEvent
class "<b>RiskManagementMessageProducer</b>\n<b>: Connection</b>" as __90_RiskManagementMessageProducer
class "<b>updatePolicy : Api Operation</b>" as __91_updatePolicy
class "<b>save : Persistence Operation</b>" as __92_save
class "<b>PolicyRepository : Persistence</b>\n<b>Store</b>" as __93_PolicyRepository
class "<b>saveAll : Persistence Operation</b>" as __94_saveAll
class "<b>findById : Persistence Operation</b>" as __95_findById
class "<b>getPolicy : Api Operation</b>" as __96_getPolicy
class "<b>count : Persistence Operation</b>" as __97_count
class "<b>findAll : Persistence Operation</b>" as __98_findAll
class "<b>getPolicies : Api Operation</b>" as __99_getPolicies
class "<b>deletePolicy : Api Operation</b>" as __100_deletePolicy
class "<b>handleMessage : Api Operation</b>" as __101_handleMessage
class "<b>index : Api Interface</b>" as __102_index
class "<b>Risk Management Server : Microservice</b>" as __103_Risk_Management_Server
class "<b>handleClientRequest : Api</b>\n<b>Operation</b>" as __104_handleClientRequest
class "<b>data : Persistence Operation</b>" as __105_data
class "<b>DataManager : Persistence</b>\n<b>Store</b>" as __106_DataManager
class "<b>handleUpdatePolicyEvent : Persistence</b>\n<b>Operation</b>" as __107_handleUpdatePolicyEvent
class "<b>handleDeletePolicyEvent : Persistence</b>\n<b>Operation</b>" as __108_handleDeletePolicyEvent
class "<b>save : Persistence Operation</b>" as __109_save
class "<b>RiskComputationService : Api</b>\n<b>Interface</b>" as __110_RiskComputationService
class "<b>computeRiskFactor : Api Operation</b>" as __111_computeRiskFactor
class "<b>CustomerInformationHolder</b>\n<b>: Api Interface</b>" as __112_CustomerInformationHolder
class "<b>getCustomers : Api Operation</b>" as __113_getCustomers
class "<b>getCustomer : Api Operation</b>" as __114_getCustomer
class "<b>count : Persistence Operation</b>" as __115_count
class "<b>createCustomer : Api Operation</b>" as __116_createCustomer
class "<b>createCustomer : Connection</b>\n<b>Operation</b>" as __117_createCustomer
class "<b>changeAddress : Connection</b>\n<b>Operation</b>" as __118_changeAddress
__1_Lakeside_Mutual --> __2_Customer_Core: composes
__1_Lakeside_Mutual --> __66_Customer_Self_Service_Backend: composes
__1_Lakeside_Mutual --> __21_Customer_Management_Backend: composes
__1_Lakeside_Mutual --> __44_Policy_Management_Backend: composes
__1_Lakeside_Mutual --> __103_Risk_Management_Server: composes
__2_Customer_Core --> __3_CityStaticDataHolder: exposes
__2_Customer_Core --> __9_CustomerInformationHolder: exposes
__3_CityStaticDataHolder --> __4_getCitiesForPostalCode
__5_getCitiesForPostalCode --> __4_getCitiesForPostalCode: in: postalCode: string out: CitiesResponseDto
__6_CustomerCoreRemoteProxy --> __7_getCustomer
__6_CustomerCoreRemoteProxy --> __118_changeAddress
__6_CustomerCoreRemoteProxy --> __117_createCustomer
__6_CustomerCoreRemoteProxy --> __5_getCitiesForPostalCode
__7_getCustomer --> __8_getCustomer: in: ids: string,fields: string\nout: CustomersResponseDto
__8_getCustomer --> __14_findById: in: None out: CustomerAggregateRoot
__8_getCustomer --> __38_findAll: in: None out: CustomerAggregateRoot
__9_CustomerInformationHolder --> __10_changeAddress
__9_CustomerInformationHolder --> __8_getCustomer
__9_CustomerInformationHolder --> __15_updateCustomer
__9_CustomerInformationHolder --> __37_getCustomers
__9_CustomerInformationHolder --> __116_createCustomer
__10_changeAddress --> __11_save: in: entity: CustomerAggregateRoot,entity: CustomerAggregateRoot\nout: CustomerAggregateRoot
__10_changeAddress --> __14_findById: in: None out: CustomerAggregateRoot
__12_CustomerRepository --> __11_save
__12_CustomerRepository --> __13_saveAll
__12_CustomerRepository --> __14_findById
__12_CustomerRepository --> __115_count
__12_CustomerRepository --> __38_findAll
__15_updateCustomer --> __11_save: in: entity: CustomerAggregateRoot,entity: CustomerAggregateRoot\nout: CustomerAggregateRoot
__15_updateCustomer --> __14_findById: in: None out: CustomerAggregateRoot
__16_updateCustomer --> __15_updateCustomer: in: customerId: CustomerId,requestDto: CustomerProfileUpdateRequestDto\nout: CustomerResponseDto
__17_CustomerCoreClient --> __18_getCustomers
__17_CustomerCoreClient --> __35_getCustomer
__17_CustomerCoreClient --> __16_updateCustomer
__18_getCustomers --> __37_getCustomers: in: filter: string,fields: string\nout: PaginatedCustomerResponseDto
__19_getCustomers --> __18_getCustomers: in: filter: string out: PaginatedCustomerResponseDto
__20_CustomerInformationHolder --> __19_getCustomers
__20_CustomerInformationHolder --> __34_getCustomer
__20_CustomerInformationHolder --> __36_updateCustomer
__21_Customer_Management_Backend --> __22_InteractionLogInformationHolder: exposes
__21_Customer_Management_Backend --> __20_CustomerInformationHolder: exposes
__22_InteractionLogInformationHolder --> __23_getInteractionLog
__22_InteractionLogInformationHolder --> __27_acknowledgeInteractions
__22_InteractionLogInformationHolder --> __33_broadcastNotifications: calls
__23_getInteractionLog --> __24_findById: in: None out: InteractionLogAggregateRoot
__25_InteractionLogRepository --> __26_save
__25_InteractionLogRepository --> __28_saveAll
__25_InteractionLogRepository --> __24_findById
__25_InteractionLogRepository --> __29_count
__25_InteractionLogRepository --> __30_findAll
__27_acknowledgeInteractions --> __26_save: in: entity: InteractionLogAggregateRoot,entity: InteractionLogAggregateRoot\nout: InteractionLogAggregateRoot
__27_acknowledgeInteractions --> __24_findById: in: None out: InteractionLogAggregateRoot
__31_broadcastNotifications --> __30_findAll: in: None out: InteractionLogAggregateRoot
__32_CustomerMessageController --> __31_broadcastNotifications
__33_broadcastNotifications --> __30_findAll: in: None out: InteractionLogAggregateRoot
__34_getCustomer --> __35_getCustomer: in: ids: string out: CustomersDto
__35_getCustomer --> __8_getCustomer: in: ids: string,fields: string\nout: CustomersResponseDto
__36_updateCustomer --> __16_updateCustomer: in: customerId: CustomerId,requestDto: CustomerProfileDto\nout: CustomerDto
__37_getCustomers --> __14_findById: in: None out: CustomerAggregateRoot
__37_getCustomers --> __38_findAll: in: None out: CustomerAggregateRoot
__39_getCustomers --> __37_getCustomers: in: filter: string,fields: string\nout: PaginatedCustomerResponseDto
__40_CustomerCoreRemoteProxy --> __39_getCustomers
__40_CustomerCoreRemoteProxy --> __41_getCustomersById
__41_getCustomersById --> __8_getCustomer: in: ids: string,fields: string\nout: CustomersResponseDto
__42_createPolicy --> __92_save: in: entity: PolicyAggregateRoot,entity: PolicyAggregateRoot\nout: PolicyAggregateRoot
__42_createPolicy --> __89_emitEvent
__42_createPolicy --> __41_getCustomersById: in: customerIds: CustomerId\nout: CustomerDto
__43_PolicyInformationHolder --> __42_createPolicy
__43_PolicyInformationHolder --> __91_updatePolicy
__43_PolicyInformationHolder --> __100_deletePolicy
__43_PolicyInformationHolder --> __99_getPolicies
__43_PolicyInformationHolder --> __96_getPolicy
__44_Policy_Management_Backend --> __45_InsuranceQuoteRequestMessageConsumer: exposes
__44_Policy_Management_Backend --> __110_RiskComputationService: exposes
__44_Policy_Management_Backend --> __43_PolicyInformationHolder: exposes
__44_Policy_Management_Backend --> __51_CustomerDecisionMessageConsumer: exposes
__44_Policy_Management_Backend --> __56_InsuranceQuoteRequestInformationHolder: exposes
__44_Policy_Management_Backend --> __112_CustomerInformationHolder: exposes
__45_InsuranceQuoteRequestMessageConsumer --> __46_receiveInsuranceQuoteRequest
__46_receiveInsuranceQuoteRequest --> __60_save: in: entity: InsuranceQuoteRequestAggregateRoot,entity: InsuranceQuoteRequestAggregateRoot\nout: InsuranceQuoteRequestAggregateRoot
__47_emitInsuranceQuoteRequestEvent --> __46_receiveInsuranceQuoteRequest: in: message: InsuranceQuoteRequestEvent\nout: None
__48_PolicyManagementMessageProducer --> __47_emitInsuranceQuoteRequestEvent
__48_PolicyManagementMessageProducer --> __49_emitCustomerDecisionEvent
__49_emitCustomerDecisionEvent --> __50_receiveCustomerDecision: in: message: CustomerDecisionEvent\nout: None
__50_receiveCustomerDecision --> __60_save: in: entity: InsuranceQuoteRequestAggregateRoot,entity: InsuranceQuoteRequestAggregateRoot\nout: InsuranceQuoteRequestAggregateRoot
__50_receiveCustomerDecision --> __58_findById: in: None out: InsuranceQuoteRequestAggregateRoot
__50_receiveCustomerDecision --> __92_save: in: entity: PolicyAggregateRoot,entity: PolicyAggregateRoot\nout: PolicyAggregateRoot
__50_receiveCustomerDecision --> __52_sendInsuranceQuoteExpiredEvent: in: event: InsuranceQuoteExpiredEvent\nout: None
__50_receiveCustomerDecision --> __77_sendPolicyCreatedEvent: in: event: PolicyCreatedEvent\nout: None
__50_receiveCustomerDecision --> __89_emitEvent
__50_receiveCustomerDecision --> __41_getCustomersById: in: customerIds: CustomerId\nout: CustomerDto
__51_CustomerDecisionMessageConsumer --> __50_receiveCustomerDecision
__52_sendInsuranceQuoteExpiredEvent --> __73_receiveInsuranceQuoteExpiredEvent: in: message: InsuranceQuoteExpiredEvent\nout: None
__53_CustomerSelfServiceMessageProducer --> __54_sendInsuranceQuoteResponseEvent
__53_CustomerSelfServiceMessageProducer --> __52_sendInsuranceQuoteExpiredEvent
__53_CustomerSelfServiceMessageProducer --> __77_sendPolicyCreatedEvent
__54_sendInsuranceQuoteResponseEvent --> __64_receiveInsuranceQuoteResponse: in: message: InsuranceQuoteResponseEvent\nout: None
__55_respondToInsuranceQuoteRequest --> __60_save: in: entity: InsuranceQuoteRequestAggregateRoot,entity: InsuranceQuoteRequestAggregateRoot\nout: InsuranceQuoteRequestAggregateRoot
__55_respondToInsuranceQuoteRequest --> __58_findById: in: None out: InsuranceQuoteRequestAggregateRoot
__55_respondToInsuranceQuoteRequest --> __54_sendInsuranceQuoteResponseEvent: in: event: InsuranceQuoteResponseEvent\nout: None
__56_InsuranceQuoteRequestInformationHolder --> __57_getInsuranceQuoteRequest
__56_InsuranceQuoteRequestInformationHolder --> __55_respondToInsuranceQuoteRequest
__57_getInsuranceQuoteRequest --> __58_findById: in: None out: InsuranceQuoteRequestAggregateRoot
__59_InsuranceQuoteRequestRepository --> __60_save
__59_InsuranceQuoteRequestRepository --> __61_saveAll
__59_InsuranceQuoteRequestRepository --> __58_findById
__59_InsuranceQuoteRequestRepository --> __62_count
__59_InsuranceQuoteRequestRepository --> __63_findAll
__64_receiveInsuranceQuoteResponse --> __69_save: in: entity: InsuranceQuoteRequestAggregateRoot,entity: InsuranceQuoteRequestAggregateRoot\nout: InsuranceQuoteRequestAggregateRoot
__64_receiveInsuranceQuoteResponse --> __72_findById: in: None out: InsuranceQuoteRequestAggregateRoot
__65_InsuranceQuoteResponseMessageConsumer --> __64_receiveInsuranceQuoteResponse
__66_Customer_Self_Service_Backend --> __67_PolicyCreatedMessageConsumer: exposes
__66_Customer_Self_Service_Backend --> __78_AuthenticationController: exposes
__66_Customer_Self_Service_Backend --> __87_CityStaticDataHolder: exposes
__66_Customer_Self_Service_Backend --> __74_InsuranceQuoteExpiredMessageConsumer: exposes
__66_Customer_Self_Service_Backend --> __65_InsuranceQuoteResponseMessageConsumer: exposes
__67_PolicyCreatedMessageConsumer --> __68_receivePolicyCreatedEvent
__68_receivePolicyCreatedEvent --> __69_save: in: entity: InsuranceQuoteRequestAggregateRoot,entity: InsuranceQuoteRequestAggregateRoot\nout: InsuranceQuoteRequestAggregateRoot
__68_receivePolicyCreatedEvent --> __72_findById: in: None out: InsuranceQuoteRequestAggregateRoot
__70_InsuranceQuoteRequestRepository --> __69_save
__70_InsuranceQuoteRequestRepository --> __71_saveAll
__70_InsuranceQuoteRequestRepository --> __72_findById
__70_InsuranceQuoteRequestRepository --> __75_count
__70_InsuranceQuoteRequestRepository --> __76_findAll
__73_receiveInsuranceQuoteExpiredEvent --> __69_save: in: entity: InsuranceQuoteRequestAggregateRoot,entity: InsuranceQuoteRequestAggregateRoot\nout: InsuranceQuoteRequestAggregateRoot
__73_receiveInsuranceQuoteExpiredEvent --> __72_findById: in: None out: InsuranceQuoteRequestAggregateRoot
__74_InsuranceQuoteExpiredMessageConsumer --> __73_receiveInsuranceQuoteExpiredEvent
__77_sendPolicyCreatedEvent --> __68_receivePolicyCreatedEvent: in: message: PolicyCreatedEvent\nout: None
__78_AuthenticationController --> __79_authenticationRequest
__78_AuthenticationController --> __80_signupUser
__80_signupUser --> __81_save: in: entity: UserLoginEntity,entity: UserLoginEntity\nout: UserLoginEntity
__82_UserLoginRepository --> __81_save
__82_UserLoginRepository --> __83_saveAll
__82_UserLoginRepository --> __84_findById
__82_UserLoginRepository --> __85_count
__82_UserLoginRepository --> __86_findAll
__87_CityStaticDataHolder --> __88_getCitiesForPostalCode
__88_getCitiesForPostalCode --> __5_getCitiesForPostalCode: in: postalCode: string out: CitiesResponseDto
__89_emitEvent --> __101_handleMessage: in: message: UpdatePolicyEvent\nout: None
__90_RiskManagementMessageProducer --> __89_emitEvent
__91_updatePolicy --> __92_save: in: entity: PolicyAggregateRoot,entity: PolicyAggregateRoot\nout: PolicyAggregateRoot
__91_updatePolicy --> __95_findById: in: None out: PolicyAggregateRoot
__91_updatePolicy --> __89_emitEvent
__91_updatePolicy --> __41_getCustomersById: in: customerIds: CustomerId\nout: CustomerDto
__93_PolicyRepository --> __92_save
__93_PolicyRepository --> __94_saveAll
__93_PolicyRepository --> __95_findById
__93_PolicyRepository --> __97_count
__93_PolicyRepository --> __98_findAll
__96_getPolicy --> __95_findById: in: None out: PolicyAggregateRoot
__99_getPolicies --> __98_findAll: in: None out: PolicyAggregateRoot
__100_deletePolicy --> __89_emitEvent
__101_handleMessage --> __107_handleUpdatePolicyEvent: in: event: UpdatePolicyEvent\nout: None
__101_handleMessage --> __108_handleDeletePolicyEvent: in: event: DeletePolicyEvent\nout: None
__102_index --> __101_handleMessage
__102_index --> __104_handleClientRequest
__103_Risk_Management_Server --> __102_index: exposes
__104_handleClientRequest --> __105_data: in: None out: customerData
__106_DataManager --> __107_handleUpdatePolicyEvent
__106_DataManager --> __108_handleDeletePolicyEvent
__106_DataManager --> __109_save
__106_DataManager --> __105_data
__110_RiskComputationService --> __111_computeRiskFactor
__112_CustomerInformationHolder --> __113_getCustomers
__112_CustomerInformationHolder --> __114_getCustomer
__113_getCustomers --> __39_getCustomers: in: filter: string,limit: int,offset: int\nout: PaginatedCustomerResponseDto
__116_createCustomer --> __11_save: in: entity: CustomerAggregateRoot,entity: CustomerAggregateRoot\nout: CustomerAggregateRoot
__117_createCustomer --> __116_createCustomer: in: requestDto: CustomerProfileUpdateRequestDto\nout: CustomerResponseDto
@enduml
