using adas_core.Domain.Models.MongoModels;
using adas_core.Infrastructure.Utils.MongoMaps.Interfaz;
using MongoDB.Bson.Serialization;

namespace adas_core.Infrastructure.Utils.MongoMaps;

public class NoticeControlMapContributor : IEntityMapContributor
{
    public void RegisterMaps()
    {
        if (!BsonClassMap.IsClassMapRegistered(typeof(Notice)))
            BsonClassMap.RegisterClassMap<Notice>(cm =>
            {
                cm.AutoMap();
                cm.MapIdMember(c => c.Id).SetElementName("_id");
            });

        if (!BsonClassMap.IsClassMapRegistered(typeof(StaffInfo)))
            BsonClassMap.RegisterClassMap<StaffInfo>(cm => { cm.AutoMap(); });

        if (!BsonClassMap.IsClassMapRegistered(typeof(MedicalStaffConfig)))
            BsonClassMap.RegisterClassMap<MedicalStaffConfig>(cm =>
            {
                cm.MapMember(c => c.HasTeams).SetIgnoreIfNull(true);
                cm.MapMember(c => c.StaffAmount).SetIgnoreIfNull(true);
            });
    }
}