package Ġcom . can _ apps . chat . data Ċ Ċ import Ġcom . can _ apps . chat . core . Chat Domain Ċ import Ġcom . can _ apps . chat . core . ChatMessage Holder Enum Domain Ċ import Ġcom . can _ apps . chat . core . Chat MessageId Domain Ċ import Ġcom . can _ apps . chat . core . ChatMessage Tail Domain Ċ import Ġcom . can _ apps . chat . core . ChatMessage Text Domain Ċ import Ġcom . can _ apps . chat . core . ChatMessage Timestamp Domain Ċ import Ġcom . can _ apps . chat . core . Chat New Domain Ċ import Ġcom . can _ apps . message _ data _ source . Message Dto Ċ import Ġcom . can _ apps . message _ data _ source . Message Holder Enum Dto Ċ import Ġcom . can _ apps . message _ data _ source . MessageId Dto Ċ import Ġcom . can _ apps . message _ data _ source . Message Tail Dto Ċ import Ġcom . can _ apps . message _ data _ source . Message Text Dto Ċ import Ġcom . can _ apps . message _ data _ source . Message Timestamp Dto Ċ import Ġcom . can _ apps . message _ data _ source . New Message Dto Ċ Ċ internal Ġinterface ĠChat Dto Mapper Ġ{ ĊĊĠĠĠ Ġfun Ġto Dto ( domain : ĠChat New Domain ): ĠNew Message Dto ? ĊĊĠĠĠ Ġfun Ġto Dto ( domain : ĠChat Domain ): ĠMessage Dto ? ĊĊĠĠĠ Ġfun Ġto Domain ( dto : ĠMessage Dto ): ĠChat Domain Ċ } Ċ Ċ internal Ġclass ĠChat Dto Mapper Default Ġ: ĠChat Dto Mapper Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġto Dto ( domain : ĠChat New Domain ): ĠNew Message Dto ? Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( domain . holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Holder Enum Domain . MY Ġ-> ĠNew Message Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Text Dto ( domain . text . value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Holder Enum Dto . MY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Holder Enum Domain . OTHER Ġ-> ĠNew Message Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Text Dto ( domain . text . value ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Holder Enum Dto . OTHER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Holder Enum Domain . SYSTEM Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Dto ( domain : ĠChat Domain ): ĠMessage Dto ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠMessage Id Dto ( domain . id . value ) ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĠMessage Text Dto ( domain . text . value ) ĊĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠMessage Timestamp Dto ( domain . timestamp . value ) ĊĠĠĠĠĠĠĠ Ġval Ġh ast Tail Ġ= ĠMessage Tail Dto ( domain . has Tail . value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( domain . holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Holder Enum Domain . MY Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Dto ( id , Ġtext , Ġtime , ĠMessage Holder Enum Dto . MY , Ġh ast Tail ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Holder Enum Domain . OTHER Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Dto ( id , Ġtext , Ġtime , ĠMessage Holder Enum Dto . OTHER , Ġh ast Tail ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Holder Enum Domain . SYSTEM Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Domain ( dto : ĠMessage Dto ): ĠChat Domain Ġ= ĊĠĠĠĠĠĠĠ ĠChat Domain ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat MessageId Domain ( dto . id . value ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Text Domain ( dto . text . value ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Timestamp Domain ( dto . timestamp . value ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( dto . holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Holder Enum Dto . MY Ġ-> ĠChat Message Holder Enum Domain . MY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Holder Enum Dto . OTHER Ġ-> ĠChat Message Holder Enum Domain . OTHER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message Tail Domain ( dto . has Tail . value ) ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ