docs: specify date-cutoff prior archive and one-way promote

Replace Didar-source classification with org cutoff date, deals/activities-only filter, and a promote tag that does not mutate record fields.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-17 15:29:37 +03:30
co-authored by Cursor
parent 177e5cc31b
commit 03e1c01023
2 changed files with 74 additions and 1 deletions
@@ -1,7 +1,7 @@
# بایگانی اطلاعات قبل
تاریخ: ۲۰۲۶-۱۰-۱۴
وضعیت: قفل‌شده توسط کاربر و پیاده‌سازی شروع شده است.
وضعیت: برای منطق طبقه‌بندی، محدودهٔ فیلتر، تاریخ قطع و انتقال، با [`2026-10-17-prior-data-archive-cutoff-design.md`](./2026-10-17-prior-data-archive-cutoff-design.md) جایگزین شده است. سه سطح دسترسی و نام‌گذاری UI هنوز مرجع است مگر سند جدید خلافش بگوید.
## هدف
@@ -0,0 +1,73 @@
# بایگانی اطلاعات قبل — تاریخ قطع و انتقال یک‌طرفه
تاریخ: ۲۰۲۶-۱۰-۱۷
وضعیت: تأیید شده در گفتگو؛ در انتظار دستور پیاده‌سازی.
جایگزین منطق طبقه‌بندی و محدودهٔ فیلتر در [`2026-10-14-prior-data-archive-design.md`](./2026-10-14-prior-data-archive-design.md) است. سه سطح دسترسی (سوپرادمین / مالک برای تیک کاربر / سوئیچ کاربر) همان سند قبلی می‌ماند مگر جایی که این سند صریحاً عوض کند.
## هدف
برای کاربرانی که این قابلیت برایشان روشن است، معامله‌ها و فعالیت‌های ساخته‌شده قبل از یک تاریخ قطع محیط، از «کار جاری» جدا شوند. کار جاری محیط ایزوله و پاک است. بایگانی فقط برای دیدن قبلی‌هاست. انتقال به جاری فقط با برچسب است؛ تاریخ و بقیهٔ فیلدها عوض نمی‌شوند.
کاربری که تیک بایگانی ندارد، محیط کامل را می‌بیند (قبل و جاری با هم) و سوئیچ را نمی‌بیند.
## مدل داده
- **تاریخ قطع محیط:** یک تاریخ برای کل سازمان (ورود شمسی در UI). اگر خالی باشد فیلتر اعمال نمی‌شود.
- **مجوز کاربر:** مثل قبل؛ فقط اعضای انتخاب‌شده سوئیچ را می‌بینند.
- **برچسب انتقال روی معامله و فعالیت:** فیلدی مثل `promotedFromPriorAt` (یا معادل). با انتقال پر می‌شود؛ یک‌طرفه؛ هیچ فیلد دیگری از جمله `createdAt` عوض نمی‌شود.
### قانون قبلی / جاری (فقط معامله و فعالیت)
| حالت | شرط |
|------|-----|
| قبلی | `createdAt` قبل از تاریخ قطع **و** برچسب انتقال ندارد |
| جاری | `createdAt` در/بعد از تاریخ قطع **یا** برچسب انتقال دارد |
- استثنای قبلی (باز + موعد آینده در کار جاری) حذف می‌شود.
- معیار منبع ورود «دیدار» برای این قابلیت دیگر استفاده نمی‌شود.
- شخص، شرکت، لید، قانون، یادداشت و بقیهٔ ماژول‌ها در هر دو لنز یکی‌اند (فیلتر لنز ندارند).
## لنز کاربر
| وضعیت مجوز | رفتار |
|------------|--------|
| ماژول محیط خاموش، یا تیک کاربر خاموش | لنز `off`؛ بدون فیلتر؛ سوئیچ مخفی |
| تیک روشن | سوئیچ دیده می‌شود؛ پیش‌فرض لنز `current` |
| لنز `current` | فقط معامله/فعالیت جاری (طبق جدول بالا) |
| لنز `archive` | فقط معامله/فعالیت قبلی |
انتخاب لنز روی عضویت ذخیره می‌شود. با قطع مجوز، انتخاب می‌ماند ولی تا بازگشت مجوز اثری ندارد.
## رابط کاربری
### کارت «بایگانی اطلاعات قبل» در دسترسی کاربران
- کنار عنوان (`h3`): انتخاب‌گر تاریخ شمسی محیط.
- به‌جای لیست بلند چک‌باکس: انتخاب کاربر به‌صورت انتخابی (جستجو/چندتایی). فقط انتخاب‌شده‌ها سوئیچ را دارند.
- ماژول محیط در سوپرادمین مثل قبل شرط لازم است.
### نوار کناری
- سوئیچ «کار جاری / بایگانی اطلاعات قبل» فقط وقتی مجوز کاربر برقرار است.
- پیش‌فرض برای کاربر مجاز: کار جاری.
### منوی سه‌نقطهٔ معامله و فعالیت
- فقط وقتی لنز روی بایگانی است و رکورد قبلی است (بدون برچسب انتقال): آیتم «انتقال به کار جاری».
- بعد از انتقال: رکورد در کار جاری دیده می‌شود؛ آیتم منو دیگر برای آن رکورد نمی‌آید.
- برگشت به بایگانی وجود ندارد.
## API و محدودهٔ فیلتر
- فیلتر لنز فقط روی معامله و فعالیت در فهرست، بورد، داشبورد، شمارش‌ها و گزارش‌هایی که این دو را می‌شمارند.
- endpoint انتقال: کاربر باید مجوز بایگانی داشته باشد، رکورد را ببیند، رکورد قبلی بدون برچسب باشد؛ فقط برچسب می‌زند.
- هر کسی که سوئیچ بایگانی دارد و آن رکورد را می‌بیند می‌تواند انتقال بزند.
## خارج از محدوده
- دو حساب یا دو محیط جدا.
- نمایش کلمهٔ «دیدار» در UI این قابلیت.
- تغییر `createdAt` یا کپی کردن رکورد هنگام انتقال.
- دکمهٔ برگشت به بایگانی.
- فیلتر لنز روی شخص، لید، قانون و ماژول‌های غیر از معامله/فعالیت.
- شروع پیاده‌سازی قبل از دستور صریح کاربر.