using adas_core.Domain.Models; using adas_core.Domain.Models.Recording; using adas_core.Domain.Models.SignalR; using adas_core.Domain.Models.SystemAlerts; using adas_core.Infrastructure.Utils.MongoMaps.Interfaz; using MongoDB.Bson.Serialization; namespace adas_core.Infrastructure.Utils.MongoMaps; /// /// Represents a map contributor that provides mapping configuration for communication flow entities by implementing the interface. /// public class ComunicationFlowMapContributor : IEntityMapContributor { /// /// Registers BSON class maps for the application's MongoDB-serialized types, including , , , , , and , applying custom mapping rules such as unmapping the Operation member on and ignoring null values for ObsertationData on . Each type is only registered if a class map has not already been registered, preventing duplicate registration. /// public void RegisterMaps() { if (!BsonClassMap.IsClassMapRegistered(typeof(Message))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.UnmapMember(c => c.Operation); }); if (!BsonClassMap.IsClassMapRegistered(typeof(Queue))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); if (!BsonClassMap.IsClassMapRegistered(typeof(ApiRequest))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); if (!BsonClassMap.IsClassMapRegistered(typeof(AdmPanelRequest))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.GetMemberMap(c => c.ObsertationData).SetIgnoreIfNull(true); }); if (!BsonClassMap.IsClassMapRegistered(typeof(ApiClients))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); if (!BsonClassMap.IsClassMapRegistered(typeof(VideoDto))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } }