logo
madaad
מבצע שאגת הארי: האם קיים מתווה פיצויים לעסקים ועצמאים?

מבצע שאגת הארי: האם קיים מתווה פיצויים לעסקים ועצמאים?

ממנהל ראשי

בסוף חודש פברואר יצא לדרך מבצע ״שאגת הארי״, ולמרות שרובינו כבר מתורגלים מאוד בהתנהלות במצבי הסלמה ביטחונית כמו המערכה מול איראן, יש דברים שלא משתנים, ואחד מהם הוא תחושת אי הוודאות הראשונית של עצמאיות ועצמאים בכל הנוגע לעסקים שלהם. פעילות נמוכה או אפסית, ירידה דרמטית בהכנסות, גלי ביטולים של לקוחות ועוד, הם רק חלק מתופעות הלוואי של מלחמות, והשאלה המרכזית כרגיל היא – האם המדינה תפצה על זה?

ארכיטקטורת הרשאות ומגבלות הרחבות

המצב היום

רובדמה ישמה חסר
ExtensionAccessusageCount, usageLimit, expiresAt, isActiveהקפאה+הודעה, תאריך שימוש אחרון
ExtensionDatakey-value חופשי לנתוני ההרחבהמבנה, קשר ל-user ספציפי
ExtensionlimitDescription, limitValue— (כבר קיים)

מה צריך להוסיף — 3 שדות ב-ExtensionAccess

model ExtensionAccess {
  // ... קיים ...

  lastUsedAt    DateTime?       // מתי המשתמש/חברה השתמשו לאחרונה
  frozenAt      DateTime?       // מתי הוקפא (null = לא מוקפא)
  frozenReason  String?         // הודעת הקפאה מהאדמין: "חשבון לא שילם" וכו'
}

Migration SQL:

ALTER TABLE "ExtensionAccess" ADD COLUMN IF NOT EXISTS "lastUsedAt" TIMESTAMP;
ALTER TABLE "ExtensionAccess" ADD COLUMN IF NOT EXISTS "frozenAt" TIMESTAMP;
ALTER TABLE "ExtensionAccess" ADD COLUMN IF NOT EXISTS "frozenReason" TEXT;

מפת כל המגבלות — איפה כל דבר חי

מגבלהשדהטבלהמי מעדכןההרחבה רואה
כמה נוצרו (שימושים)usageCountExtensionAccessREPORT_USAGE אוטומטיusageCount בתגובה
מקסימום שימושיםusageLimitExtensionAccessאדמין / מועתק מ-Extension.limitValueusageLimit בתגובה
מה סופרים (תיאור)limitDescriptionExtensionאדמיןlimitDescription בתגובה
תוקף עד תאריךexpiresAtExtensionAccessאדמין / רכישהexpiresAt או error: "EXPIRED"
הקפאהfrozenAtExtensionAccessאדמיןerror: "FROZEN"
הודעת הקפאהfrozenReasonExtensionAccessאדמיןreason: "..."
שימוש אחרוןlastUsedAtExtensionAccessREPORT_USAGE אוטומטי— (רק אדמין רואה)
נתוני ההרחבה עצמהkey-valueExtensionDataההרחבה דרך STOREההרחבה קוראת

זרימה — מה קורה כשהרחבה נטענת

הרחבה נטענת → mount()
   ↓
Bridge: GET_ACCESS_STATUS (פקודה חדשה)
   ↓
API בודק ExtensionAccess:
   ├─ frozenAt != null?     → { status: "frozen", reason: "חשבון לא שילם" }
   ├─ expiresAt < now?      → { status: "expired", expiredAt: "14/03/2026" }
   ├─ usageCount >= limit?  → { status: "limit_reached", count: 50, limit: 50, limitDescription: "אנשי קשר" }
   └─ הכל טוב              → { status: "active", count: 7, limit: 50, limitDescription: "אנשי קשר" }

זרימה — מה קורה כשהרחבה מוסיפה ישות

bridge.send({ type: "REPORT_USAGE", amount: 1 })
   ↓
API בודק:
   ├─ frozen?        → error: "FROZEN", reason: "..."
   ├─ expired?       → error: "EXPIRED"
   ├─ limit reached? → error: "LIMIT_REACHED"
   └─ OK             → usageCount++, lastUsedAt = now()
                        return { ok: true, usageCount: 8, usageLimit: 50 }

זרימה — אדמין מקפיא

Admin UI → PATCH /api/admin/extensions/{id}/access/{accessId}
   body: { frozen: true, frozenReason: "חשבון לא שילם" }
   → frozenAt = now(), frozenReason = "חשבון לא שילם"

בפעם הבאה שההרחבה קוראת GET_ACCESS_STATUS:
   → { status: "frozen", reason: "חשבון לא שילם" }

ההרחבה מציגה: "ההרחבה מושעה: חשבון לא שילם. פנה למנהל."

Bridge command חדש: GET_ACCESS_STATUS

דוגמת שימוש בהרחבה:

bridge.on("GET_ACCESS_STATUS_RESPONSE", function(data) {
  if (data.status === "frozen") {
    root.innerHTML = "<div class='error'>ההרחבה מושעה: " + data.reason + "</div>";
    return;
  }
  if (data.status === "expired") {
    root.innerHTML = "<div class='error'>התוקף פג ב-" + data.expiredAt + "</div>";
    return;
  }
  if (data.status === "limit_reached") {
    root.innerHTML = "<div class='error'>הגבלה: " + data.count + "/" + data.limit + " " + data.limitDescription + "</div>";
    return;
  }
  // status === "active" — הכל טוב
  initApp(data);
});
bridge.send({ type: "GET_ACCESS_STATUS" });

Response schema:

// active
{ "status": "active", "count": 7, "limit": 50, "limitDescription": "אנשי קשר", "expiresAt": null }

// frozen
{ "status": "frozen", "reason": "חשבון לא שילם" }

// expired
{ "status": "expired", "expiredAt": "14/03/2026" }

// limit_reached
{ "status": "limit_reached", "count": 50, "limit": 50, "limitDescription": "אנשי קשר" }

Admin UI — תצוגת כרטיס הרשאה

┌─────────────────────────────────────────────┐
│ הרחבה: מנהל אנשי קשר                       │
│ חברה: אלפא בע"מ                             │
│                                             │
│ מגבלת שימוש: 7 / 50 אנשי קשר               │
│ שימוש אחרון: 14/03/2026                     │
│ תוקף: 31/12/2026                            │
│                                             │
│ [🔒 הקפא]  [הודעה: ___________]  [💀 בטל]  │
└─────────────────────────────────────────────┘

רשימת משימות ליישום

#פריטסוגמאמץ
13 שדות ב-ExtensionAccess (lastUsedAt, frozenAt, frozenReason)Migrationקטן
2עדכון REPORT_USAGE — לבדוק frozen/expired + לעדכן lastUsedAtשינוי route קייםבינוני
3Bridge command GET_ACCESS_STATUS — route חדש + handler ב-iframeAPI + Frontendבינוני
4עדכון buildPlatformPrompt.ts להסביר GET_ACCESS_STATUSPromptקטן
5Admin UI — כפתור הקפאה, שדה הודעה, תצוגת lastUsedAtAdmin pageבינוני
6הוספת GET_ACCESS_STATUS ל-extensionPermissions.tsConfigקטן

סה"כ: אין טבלה חדשה. אין שינוי מבני. רק 3 שדות + Bridge command אחד.