{
  "title": "Storage Service",
  "slug": "team/backend/services/storage-service",
  "url": "/docs/team/backend/services/storage-service",
  "frontmatter": {},
  "sections": [
    {
      "level": 1,
      "heading": "Storage Service",
      "content": "> **وضعیت:** Blueprint (پیش‌نویس برای بازبینی تیم)\n> **نسخه:** v0.1.0-draft\n> **مالک:** Backend Team\n\n---"
    },
    {
      "level": 2,
      "heading": "۱. تعریف (Definition)",
      "content": "Storage Service سرویس ذخیره‌سازی فایل و باینری‌های سیستم است. مالک فایل‌های بارگذاری‌شده توسط کاربران و دارایی‌های سیستمی (assets) پس از مهاجرت از Pool Service است.\n\n---"
    },
    {
      "level": 2,
      "heading": "۲. حوزه (Scope)",
      "content": "Storage Service مسئول است برای:\n\n- ذخیره‌سازی فایل‌های بارگذاری‌شده (upload) با دسترسی کنترل‌شده\n- ارائه URLهای ایمن (signed URL) برای دانلود/نمایش\n- نسخه‌بندی و حذف نرم (soft delete) فایل‌ها\n- متادیتای فیزیکی فایل (اندازه، نوع MIME، hash)\n\n---"
    },
    {
      "level": 2,
      "heading": "۳. مرز مسئولیت با Pool Service (C8)",
      "content": "> **تصمیم معماری (C8):** در MVP، دارایی‌های فیزیکی (مانند فایل‌های آواتار) **موقتاً در Pool Service** ذخیره می‌شوند تا سرعت راه‌اندازی حفظ شود. در فاز بعدی، این فایل‌ها به Storage Service **مهاجرت** می‌کنند.\n\n| مسئولیت | Pool Service | Storage Service |\n|----------|--------------|-----------------|\n| متادیتای آواتار (skin tone, style, category) | ✅ مالک | ❌ |\n| فایل فیزیکی آواتار (MVP) | ✅ موقت | ❌ (آینده) |\n| فایل فیزیکی آواتار (هدف نهایی) | ❌ | ✅ مالک |\n| Reference Data سایر دامنه‌ها | ✅ مالک | ❌ |\n\nStorage Service **مالک Reference Data نیست** — صرفاً باینری را نگهداری می‌کند.\n\n---"
    },
    {
      "level": 2,
      "heading": "۴. رابطه با سایر سرویس‌ها",
      "content": "- **Pool Service:** مصرف‌کننده آینده برای میزبانی فایل‌های فیزیکی assetها.\n- **User Service:** آواتار کاربر در MVP از Pool Service می‌آید؛ در آینده می‌تواند URLهای Storage را مصرف کند.\n- **Gateway (Traefik):** مسیریابی درخواست‌های فایل.\n\n---"
    },
    {
      "level": 2,
      "heading": "۵. تکنولوژی (پیشنهادی)",
      "content": "- Object Storage (S3-compatible) پشت یک سرویس Go\n- signed URL با انقضای کوتاه\n- جداگانه از دیتابیس‌های دامنه\n\n---"
    },
    {
      "level": 2,
      "heading": "۶. وضعیت فعلی",
      "content": "این سرویس در حال حاضر **فقط Blueprint** است و در ترتیب پیاده‌سازی (`rule.md` §۳) در انتهای زنجیره قرار دارد. پیاده‌سازی آن منوط به تثبیت Pool Service و نیاز به مهاجرت دارایی‌ها است."
    }
  ]
}