diff --git a/notification.go b/notification.go
index b19b191..3dd77dd 100644
--- a/notification.go
+++ b/notification.go
@@ -663,6 +663,35 @@ type MadeWarMutual struct {
EnemyID int64 `yaml:"enemyID"`
}
+type MercenaryDenAttacked struct {
+ AggressorAllianceName string `yaml:"aggressorAllianceName"`
+ AggressorCharacterID int64 `yaml:"aggressorCharacterID"`
+ AggressorCorporationName string `yaml:"aggressorCorporationName"`
+ ArmorPercentage float64 `yaml:"armorPercentage"`
+ HullPercentage float64 `yaml:"hullPercentage"`
+ ItemID int64 `yaml:"itemID"`
+ MercenaryDenShowInfoData []any `yaml:"mercenaryDenShowInfoData"`
+ PlanetID int64 `yaml:"planetID"`
+ PlanetShowInfoData []any `yaml:"planetShowInfoData"`
+ ShieldPercentage float64 `yaml:"shieldPercentage"`
+ SolarSystemID int64 `yaml:"solarsystemID"`
+ TypeID int64 `yaml:"typeID"`
+}
+
+type MercenaryDenReinforced struct {
+ AggressorAllianceName string `yaml:"aggressorAllianceName"`
+ AggressorCharacterID int64 `yaml:"aggressorCharacterID"`
+ AggressorCorporationName string `yaml:"aggressorCorporationName"`
+ ItemID int64 `yaml:"itemID"`
+ MercenaryDenShowInfoData []any `yaml:"mercenaryDenShowInfoData"`
+ PlanetID int64 `yaml:"planetID"`
+ PlanetShowInfoData []any `yaml:"planetShowInfoData"`
+ SolarSystemID int64 `yaml:"solarsystemID"`
+ TimestampEntered int64 `yaml:"timestampEntered"`
+ TimestampExited int64 `yaml:"timestampExited"`
+ TypeID int64 `yaml:"typeID"`
+}
+
type MercOfferedNegotiationMsg struct {
AggressorID int64 `yaml:"aggressorID"`
DefenderID int64 `yaml:"defenderID"`
diff --git a/notification_test.go b/notification_test.go
new file mode 100644
index 0000000..3fd9369
--- /dev/null
+++ b/notification_test.go
@@ -0,0 +1,76 @@
+package goesi_test
+
+import (
+ "testing"
+
+ "github.com/fnt-eve/goesi-openapi"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+ "gopkg.in/yaml.v3"
+)
+
+const MercenaryDenAttackedText = `
+aggressorAllianceName: Bad Alliance
+aggressorCharacterID: 1011
+aggressorCorporationName: Bad Corp
+armorPercentage: 99.0
+hullPercentage: 100.0
+itemID: &id001 1000000000099
+mercenaryDenShowInfoData:
+- showinfo
+- 85230
+- *id001
+planetID: 40161469
+planetShowInfoData:
+- showinfo
+- 11
+- 40161469
+shieldPercentage: 0.0
+solarsystemID: 30002537
+typeID: 85230
+`
+
+func TestNotification_MercenaryDenAttacked(t *testing.T) {
+ var got goesi.MercenaryDenAttacked
+ err := yaml.Unmarshal([]byte(MercenaryDenAttackedText), &got)
+ require.NoError(t, err)
+ assert.Equal(t, int64(1011), got.AggressorCharacterID)
+ assert.Equal(t, 99.0, got.ArmorPercentage)
+ assert.Equal(t, 100.0, got.HullPercentage)
+ assert.Equal(t, int64(40161469), got.PlanetID)
+ assert.Equal(t, 0.0, got.ShieldPercentage)
+ assert.Equal(t, int64(30002537), got.SolarSystemID)
+ assert.Equal(t, int64(85230), got.TypeID)
+}
+
+const MercenaryDenReinforcedText = `
+aggressorAllianceName: Bad Alliance
+aggressorCharacterID: 1011
+aggressorCorporationName: Bad Corp
+itemID: &id001 1000000000099
+mercenaryDenShowInfoData:
+- showinfo
+- 85230
+- *id001
+planetID: 40161469
+planetShowInfoData:
+- showinfo
+- 11
+- 40161469
+solarsystemID: 30002537
+timestampEntered: 134026459143594820
+timestampExited: 134027264983594820
+typeID: 85230
+`
+
+func TestNotification_MercenaryDenReinforced(t *testing.T) {
+ var got goesi.MercenaryDenReinforced
+ err := yaml.Unmarshal([]byte(MercenaryDenReinforcedText), &got)
+ require.NoError(t, err)
+ assert.Equal(t, int64(1011), got.AggressorCharacterID)
+ assert.Equal(t, int64(40161469), got.PlanetID)
+ assert.Equal(t, int64(30002537), got.SolarSystemID)
+ assert.Equal(t, int64(85230), got.TypeID)
+ assert.Equal(t, int64(134026459143594820), got.TimestampEntered)
+ assert.Equal(t, int64(134027264983594820), got.TimestampExited)
+}