# ⚠️ یادآوری مهم - Proto Package Management

## قانون طلایی (برای ALL سرویس‌ها)

**هر تغییر در Proto = این 3 مرحله اجباری:**

```bash
# 1️⃣ افزایش Version
<Version>X.Y.Z</Version>  →  <Version>X.Y.Z+1</Version>

# 2️⃣ Pack کردن
dotnet pack -c Release
# ✅ خودکار push می‌شه به GitLab

# 3️⃣ Update در لایه بالاتر
<PackageReference Include="PackageName" Version="NEW_VERSION" />
```

---

## مثال عملی

### تغییر در CMS Proto:
```bash
cd CMS/src/CMSMicroservice.Protobuf
# ویرایش products.proto
# افزایش <Version>0.0.142</Version> → 0.0.143
dotnet pack -c Release
```

### Update در BackOffice.BFF:
```xml
<!-- BackOffice.BFF.Products.Protobuf.csproj -->
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.143" />
```

### Pack کردن BFF:
```bash
cd BackOffice.BFF/src/Protobufs/BackOffice.BFF.Products.Protobuf
# افزایش <Version>1.0.0</Version> → 1.0.1
dotnet pack -c Release
```

### Update در BackOffice UI:
```xml
<!-- BackOffice.csproj -->
<PackageReference Include="Foursat.BackOffice.BFF.Products.Protobuf" Version="1.0.1" />
```

---

## این قانون برای همه است:

- ✅ CMS → BackOffice.BFF
- ✅ CMS → FrontOffice.BFF
- ✅ BackOffice.BFF → BackOffice UI
- ✅ FrontOffice.BFF → FrontOffice UI

---

## ⚠️ فراموش کردن = Bug

- Runtime errors بی‌دلیل
- "Method not found"
- "Type mismatch"
- ساعت‌ها Debug بیهوده

---

**GitLab Registry**: `https://git.afrino.co/api/packages/FourSat/nuget/index.json`
