دیجی کالا


می‌خواهیم یک فروشگاه آنلاین را پیاده‌سازی کنیم که در آن کالاهایی برای بفروش بگذاریم و کاربران آن‌ها را خریداری کنند و نظرات خود را راجع به کالا‌ها بگذارند. بخشی از کد فروشگاه توسط فردی زده شده‌است و در حال حاضر در دسترس نیست. شما باید به آن امکاناتی اضافه کنید.

کد پروژه را می‌توانید از این لینک دریافت کنید.

داخل پروژه ۲ فایل پایتون با نام‌های models.py و store.py است. شما باید توابع ناقص فایل store.py را تکمیل کنید.

جزئیات پروژه🔗

داخل کلاس Store چند تابع وجود دارد که نیاز به تکمیل دارند. همچنین object آن دارای کالاهای موجود و کاربران ثبت نام شده‌است. کالاها به صورت dictonary ذخیره شده‌اند که هر key آن یک کالا(Product) است و هر ‍‍value آن تعداد موجودی آن کالاست. کاربران هم به صورت list ذخیره شده‌اند.

وظیفه‌ی شما این است که توابع زیر را برای کلاس Store پیاده‌سازی کنید.

  • تابع remove_product این تابع وظیفه‌ی حذف کالا از فروشگاه را دارد.در صورت موجود نبود این تعداد کالا، استثایی با پیام ‍‍Not Enough Products پرتاب شود و هیچ کالایی از فروشگاه حذف نشود. در صورتی که موجودی یک کالا به صفر برسد باید از دیکشنری کالاها حذف شود.
  • تابع add_user این تابع یک کاربر را به کاربران اضافه می‌کند. در صورتی که نام کاربری تکراری باشد کاربری اضافه نمی‌کند و مقدار None بر می‌گرداند؛ در غیر این صورت، رشته‌ی نام کاربری آن کاربر را برمی‌گرداند.
  • تابع get_total_asset این تابع جمع کل دارایی‌های فروشگاه را برمی‌گرداند (دارایی فروشگاه برابر مجموع قیمت کالاهای موجود است.)
  • تابع get_total_profit این تابع مقدار سودی که فروشگاه کرده‌است را برمی‌گرداند. مقدار سود فروشگاه برابر جمع قیمت کالاهای فروخته‌شده است. ( تعداد هریک از کالاهای لیست bought_products در کلاس User یک است.)
  • تابع get_comments_by_user این تابع لیست متن نظراتی که یک کاربر خاص روی محصولات موجود در فروشگاه گذاشته‌است را بر می‌گرداند (ترتیب آن‌ها مهم نیست)
  • تابع get_inflation_affected_product_names این تابع لیستی از نام کالاهایی که تورم روی آن‌ها تاثیر گذاشته‌است را برمی‌گرداند. (تورم روی کالاهایی اثر گذاشته‌است که کالایی هم اسم آن‌ها ولی با قیمت کمتر داخل فروشگاه وجود داشته‌باشد). توجه کنید که اگر چند قیمت از یک کالا موجود باشد، نام آن فقط یک بار باید در لیست بیاید. ترتیب اعضای لیست اهمیتی ندارد.
  • تابع clean_old_comments این تابع ورودی یک تاریخ از نوع datetime می‌گیرد و همه‌ی نظراتی که قبل از آن تاریخ روی پست‌ها گذاشته شده‌اند را حذف می‌کند.
  • تابع get_comments_by_bought_users این تابع لیستی از متن نظراتی را بر می‌گرداند که صاحب آن، کالا را خریداری کرده‌است.

نکات🔗

  • توجه کنید که ممکن است از یک کالا چند عدد موجود باشد.
  • شما تنها مجاز به تغییر فایل store.py هستید.

آنچه باید آپلود کنید:🔗

  • یک فایل Zip شامل یک فایل به نام ‍store.py که کلاس Store در آن قرار دارد آپلود کنید.
  • نام فایل Zip اهمیت ندارد.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.