/// قرارداد یوزکیس: هر یوزکیس با یک پارامتر فراخوانی می‌شود و یک Future برمی‌گرداند. abstract class UseCase { Future call(P params); } /// نبودِ پارامتر (برای یوزکیس‌های بدون ورودی). class NoParams { const NoParams(); } /// پارامتر بررسی کد یک‌بارمصرف. class OtpParams { final String mobile; final String token; const OtpParams(this.mobile, this.token); } /// پارامتر به‌روزرسانی پروفایل (نام و آواتار). class ProfileParams { final String firstName; final String avatar; const ProfileParams(this.firstName, this.avatar); } /// پارامتر خرید درون‌برنامه‌ای (IAP). class PurchaseParams { final String store; final String kind; final String productId; final String token; const PurchaseParams({ required this.store, required this.kind, required this.productId, required this.token, }); }