This commit is contained in:
2025-10-10 12:57:52 +02:00
parent bb946e9e6a
commit 598044c811

View File

@@ -57,14 +57,31 @@ const checkExtractorExpiry = async (character: any, planet: any, extractors: any
} }
}; };
const checkStorageCapacity = async (character: any, planet: any, storage: any[], config: WebhookConfig) => { const checkStorageCapacity = async (character: any, planet: any, pins: any[], config: WebhookConfig) => {
if (!config.enabled || !config.zulipUrl) return; if (!config.enabled || !config.zulipUrl) return;
for (const storageItem of storage) { // Import the storage constants
const fillPercentage = (storageItem.used / storageItem.capacity) * 100; const { STORAGE_IDS, STORAGE_CAPACITIES, PI_PRODUCT_VOLUMES } = await import('@/const');
// Find storage facilities using the same logic as AccountCard
const storageFacilities = pins.filter((pin: any) =>
STORAGE_IDS().some((storage: any) => storage.type_id === pin.type_id)
);
for (const storage of storageFacilities) {
const storageType = STORAGE_IDS().find((s: any) => s.type_id === storage.type_id)?.name;
const storageCapacity = STORAGE_CAPACITIES[storage.type_id];
const totalVolume = storage.contents
.reduce((sum: number, item: any) => {
const volume = PI_PRODUCT_VOLUMES[item.type_id];
return sum + (item.amount * volume);
}, 0);
const fillPercentage = (totalVolume / storageCapacity) * 100;
if (fillPercentage >= config.storageCriticalThreshold) { if (fillPercentage >= config.storageCriticalThreshold) {
const message = `🚨 Storage ${storageItem.type_name} is ${fillPercentage.toFixed(1)}% full!`; const message = `🚨 Storage ${storageType} is ${fillPercentage.toFixed(1)}% full!`;
await fetch('/api/zulip-webhook', { await fetch('/api/zulip-webhook', {
method: 'POST', method: 'POST',
@@ -82,7 +99,7 @@ const checkStorageCapacity = async (character: any, planet: any, storage: any[],
}) })
}); });
} else if (fillPercentage >= config.storageWarningThreshold) { } else if (fillPercentage >= config.storageWarningThreshold) {
const message = `⚠️ Storage ${storageItem.type_name} is ${fillPercentage.toFixed(1)}% full`; const message = `⚠️ Storage ${storageType} is ${fillPercentage.toFixed(1)}% full`;
await fetch('/api/zulip-webhook', { await fetch('/api/zulip-webhook', {
method: 'POST', method: 'POST',