# دستور کار ادامه و بازیابی درگاه موزیکال

## تصویر مبنای نسخهٔ ۵۳

- ۴٬۵۷۱ فیلم یکتا
- ۷۳۹ مستند مستقل و ۱۲٬۸۱۱ رابطهٔ عوامل
- ۲۷۴ انیمیشن یکتا و ۶٬۵۸۱ رابطهٔ عوامل
- ۱٬۰۹۵ شمارهٔ موزیکال
- ۳٬۵۱۶ رابطهٔ دپارتمان موسیقی
- ۱۲۷ گروه موسیقی و ۱۳۹ رابطهٔ فیلم/مستند
- ۶۰ فیلم موسیقی‌محور؛ ۲۱ اتصال فیلم، یک اتصال مستند و ۳۹ رکورد مستقل
- برچسب رسمی IMDb: ۱٬۲۲۶ `Music`، ۲٬۰۷۰ `Musical` و ۶۶ مشترک
- ۲۳۷ گروه ادغام‌شدهٔ IMDb با ۲۳۹ شناسهٔ تاریخی محفوظ

## ترتیب شروع هر کار

1. این فایل، `musical-portal-guide.md` و `musical-portal-history.md` خوانده شوند.
2. از وضعیت جاری پشتیبان قابل‌بازگشت ساخته شود.
3. دامنهٔ بسته روشن باشد: فیلم، شخص، مستند، انیمیشن، گروه، سبک، ژانر یا اتصال.
4. تغییر ابتدا با شناسه‌های پایدار و روی یک نمونهٔ کوچک کنترل شود.
5. پس از موفقیت، بستهٔ کامل اجرا و شمار قبل/بعد ثبت شود.

## قواعد داده

- فیلم: `film_id` پایدار؛ IMDb، عنوان، سال و کارگردان برای تطبیق.
- مستند: `MUS-D`؛ معیار `Documentary` در IMDb؛ موسیقایی/عمومی در ستون دامنه.
- انیمیشن: `MUS-A`؛ معیار `Animation` در IMDb.
- فیلم موسیقی‌محور: `MUS-MC`؛ جدول مستقل، تطبیق فقط با IMDb و بدون ورود رکورد تازه به فیلم/مستند/انیمیشن.
- شمارهٔ موزیکال: `MUS-N`؛ نوع ویدئو، اعتماد و یادداشت بازبینی حفظ شود.
- گروه موسیقی: `group_id` و IMDb Name ID؛ فقط هویت گروه/Band، نه شخص یا شرکت سینمایی.
- شخص: املای یکتا، نقش دقیق و شناسهٔ IMDb در صورت وجود.
- برچسب IMDb: `imdb_music` و `imdb_musical` مستقل بمانند؛ مقدار `1` تأیید، `0` عدم وجود برچسب و خانهٔ خالی وضعیت نامشخص است.

## ادغام و تکراری‌ها

1. ادغام خودکار فقط با IMDb دقیقاً یکسان.
2. رکورد هسته در `film_id` بماند.
3. همهٔ شناسه‌های دیگر در `legacy_film_ids` ثبت شوند.
4. مقدار خالی از رکورد مکمل پر شود؛ تعارض غیرخالی حذف نشود و در `merge_preserved_values_json` بماند.
5. جدول‌های وابسته به شناسهٔ نهایی منتقل و مقدار قبلی در ستون legacy یا دفتر ممیزی حفظ شود.
6. نشانی پرونده با شناسهٔ قدیمی باید همچنان رکورد نهایی را باز کند.

## کنترل کیفیت اجباری

- همهٔ CSVها قابل خواندن و دارای شمار ستون ثابت باشند.
- `film_id`، `MUS-D`، `MUS-A`، `MUS-MC` و `MUS-N` یکتا باشند.
- هر IMDb در جدول موسیقی‌محور یکتا باشد و اتصال‌ها فقط به شناسه‌های موجود اشاره کنند.
- IMDb تکراریِ فیلم پس از ادغام صفر باشد.
- اتصال یتیم در ژانر، قالب، سبک، شماره و عوامل وجود نداشته باشد.
- شمارهای صفحهٔ اصلی، شیوه‌نامه و خروجی کامل برابر باشند.
- شمار برچسب‌های IMDb با `imdb_music_labels_report.json` برابر باشد: ۱٬۲۲۶ / ۲٬۰۷۰ / ۶۶ مشترک.
- فایل ZIP با آزمون سلامت باز شود.
- SQLite با `PRAGMA integrity_check` مقدار `ok` بدهد.
- خطای موردی ثبت شود اما بستهٔ سالم را متوقف نکند.

## ساخت خروجی و پشتیبان

- خروجی کامل باید فیلم، ژانر، قالب، سبک، عوامل و اتصال‌های بیرونی را یک‌جا داشته باشد.
- پشتیبان باید کد درگاه، همهٔ جدول‌های داده، گزارش‌ها، شیوه‌نامه، تاریخچه، دستور کار و راهنمای بازیابی را نگه دارد.
- نام فایل اصلی `musical_portal_4409.csv` برای سازگاری تغییر نکند؛ نام خروجی کامل شمار زنده را نشان دهد.
- پیش از انتشار نسخهٔ تازه، پشتیبان «پیش از تغییر» و پس از آن پشتیبان نسخهٔ نهایی ساخته شود.

## بازیابی

1. پشتیبان مورد نظر در پوشهٔ جدا استخراج شود؛ روی نسخهٔ زنده بازنویسی مستقیم نشود.
2. `BACKUP_INFO_FA.md` و نسخهٔ شیوه‌نامه بررسی شود.
3. شمار جدول اصلی و گزارش‌های مستند/انیمیشن با تاریخچه تطبیق داده شود.
4. ساخت و اعتبارسنجی در نسخهٔ جدا اجرا شود.
5. فقط پس از کنترل، نسخهٔ بازیابی‌شده جایگزین و منتشر شود.

## کارهای باز

- تکمیل اتصال‌های IMDb جامانده و ممیزی تکراری‌های ورودی‌های آینده
- گسترش کنترل‌شدهٔ YouTube با تفکیک فیلم کامل، صحنه، کلیپ، صدا و جست‌وجو
- صریح‌کردن دو محور «رسانه» و «سنت» در مدل داده
- بازبینی ۲۲ نامزد گروه و Band
- توسعهٔ شبکهٔ همکاری مستندها و گروه‌ها بدون سنگین‌کردن بار اولیه
- حفظ همگامی دائمی شمارها، خروجی، پشتیبان و تاریخچه
