Merge branch 'main' into storefront-nuxt

This commit is contained in:
Egor Pavlovich Gorbunov 2025-11-11 23:56:29 +03:00
commit d3e016c8d6
214 changed files with 17238 additions and 14962 deletions

View file

@ -7,10 +7,16 @@ from engine.blog.serializers import PostSerializer
POST_SCHEMA = { POST_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"blog",
],
summary=_("list all posts (read-only)"), summary=_("list all posts (read-only)"),
responses={status.HTTP_200_OK: PostSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: PostSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"blog",
],
summary=_("retrieve a single post (read-only)"), summary=_("retrieve a single post (read-only)"),
responses={status.HTTP_200_OK: PostSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: PostSerializer(), **BASE_ERRORS},
), ),

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "المدونة" msgstr "المدونة"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "سرد جميع المشاركات (للقراءة فقط)" msgstr "سرد جميع المشاركات (للقراءة فقط)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "استرداد منشور واحد (للقراءة فقط)" msgstr "استرداد منشور واحد (للقراءة فقط)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Seznam všech příspěvků (pouze pro čtení)" msgstr "Seznam všech příspěvků (pouze pro čtení)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Získání jednoho příspěvku (pouze pro čtení)" msgstr "Získání jednoho příspěvku (pouze pro čtení)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Vis alle indlæg (skrivebeskyttet)" msgstr "Vis alle indlæg (skrivebeskyttet)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Hent et enkelt indlæg (skrivebeskyttet)" msgstr "Hent et enkelt indlæg (skrivebeskyttet)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Alle Beiträge auflisten (schreibgeschützt)" msgstr "Alle Beiträge auflisten (schreibgeschützt)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Einen einzelnen Beitrag abrufen (schreibgeschützt)" msgstr "Einen einzelnen Beitrag abrufen (schreibgeschützt)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -21,11 +21,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "List all posts (read-only)" msgstr "List all posts (read-only)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Retrieve a single post (read-only)" msgstr "Retrieve a single post (read-only)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "List all posts (read-only)" msgstr "List all posts (read-only)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Retrieve a single post (read-only)" msgstr "Retrieve a single post (read-only)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Listar todos los mensajes (sólo lectura)" msgstr "Listar todos los mensajes (sólo lectura)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Recuperar una única entrada (sólo lectura)" msgstr "Recuperar una única entrada (sólo lectura)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Liste de tous les messages (en lecture seule)" msgstr "Liste de tous les messages (en lecture seule)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Récupérer un seul message (en lecture seule)" msgstr "Récupérer un seul message (en lecture seule)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "בלוג" msgstr "בלוג"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "הצג את כל ההודעות (לקריאה בלבד)" msgstr "הצג את כל ההודעות (לקריאה בלבד)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "איתור פוסט בודד (לקריאה בלבד)" msgstr "איתור פוסט בודד (לקריאה בלבד)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "" msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Daftar semua postingan (hanya-baca)" msgstr "Daftar semua postingan (hanya-baca)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Mengambil satu postingan (hanya-baca)" msgstr "Mengambil satu postingan (hanya-baca)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Elenco di tutti i messaggi (solo lettura)" msgstr "Elenco di tutti i messaggi (solo lettura)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Recuperare un singolo post (solo lettura)" msgstr "Recuperare un singolo post (solo lettura)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "ブログ" msgstr "ブログ"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "すべての投稿をリストアップする(読み取り専用)" msgstr "すべての投稿をリストアップする(読み取り専用)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "単一の投稿を取得する(読み取り専用)" msgstr "単一の投稿を取得する(読み取り専用)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "" msgstr ""
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "블로그" msgstr "블로그"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "모든 게시물 나열(읽기 전용)" msgstr "모든 게시물 나열(읽기 전용)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "단일 게시물 검색(읽기 전용)" msgstr "단일 게시물 검색(읽기 전용)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Alle berichten weergeven (alleen-lezen)" msgstr "Alle berichten weergeven (alleen-lezen)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Een enkel bericht ophalen (alleen-lezen)" msgstr "Een enkel bericht ophalen (alleen-lezen)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blogg" msgstr "Blogg"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Liste over alle innlegg (skrivebeskyttet)" msgstr "Liste over alle innlegg (skrivebeskyttet)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Hent et enkelt innlegg (skrivebeskyttet)" msgstr "Hent et enkelt innlegg (skrivebeskyttet)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Lista wszystkich postów (tylko do odczytu)" msgstr "Lista wszystkich postów (tylko do odczytu)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Pobieranie pojedynczego wpisu (tylko do odczytu)" msgstr "Pobieranie pojedynczego wpisu (tylko do odczytu)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Listar todas as postagens (somente leitura)" msgstr "Listar todas as postagens (somente leitura)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Recuperar um único post (somente leitura)" msgstr "Recuperar um único post (somente leitura)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Listează toate postările (doar pentru citire)" msgstr "Listează toate postările (doar pentru citire)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Recuperează o singură postare (read-only)" msgstr "Recuperează o singură postare (read-only)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Блог" msgstr "Блог"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Список всех сообщений (только для чтения)" msgstr "Список всех сообщений (только для чтения)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Получение одного сообщения (только для чтения)" msgstr "Получение одного сообщения (только для чтения)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blogg" msgstr "Blogg"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Lista alla inlägg (skrivskyddad)" msgstr "Lista alla inlägg (skrivskyddad)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Hämta ett enskilt inlägg (skrivskyddat)" msgstr "Hämta ett enskilt inlägg (skrivskyddat)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "บล็อก" msgstr "บล็อก"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "แสดงรายการโพสต์ทั้งหมด (อ่านอย่างเดียว)" msgstr "แสดงรายการโพสต์ทั้งหมด (อ่านอย่างเดียว)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "ดึงโพสต์เดียว (อ่านอย่างเดียว)" msgstr "ดึงโพสต์เดียว (อ่านอย่างเดียว)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Tüm gönderileri listele (salt okunur)" msgstr "Tüm gönderileri listele (salt okunur)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Tek bir gönderiyi al (salt okunur)" msgstr "Tek bir gönderiyi al (salt okunur)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "Blog" msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "Danh sách tất cả các bài đăng (chỉ đọc)" msgstr "Danh sách tất cả các bài đăng (chỉ đọc)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "Lấy một bài đăng duy nhất (chỉ đọc)" msgstr "Lấy một bài đăng duy nhất (chỉ đọc)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog" msgid "blog"
msgstr "博客" msgstr "博客"
#: engine/blog/docs/drf/viewsets.py:10 #: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)" msgid "list all posts (read-only)"
msgstr "列出所有帖子(只读)" msgstr "列出所有帖子(只读)"
#: engine/blog/docs/drf/viewsets.py:14 #: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)" msgid "retrieve a single post (read-only)"
msgstr "检索单个帖子(只读)" msgstr "检索单个帖子(只读)"

View file

@ -1,3 +1,5 @@
from django.conf import settings
from django.http import FileResponse
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import OpenApiParameter, extend_schema, inline_serializer from drf_spectacular.utils import OpenApiParameter, extend_schema, inline_serializer
from rest_framework import status from rest_framework import status
@ -12,8 +14,33 @@ from engine.core.serializers import (
) )
from engine.payments.serializers import TransactionProcessSerializer from engine.payments.serializers import TransactionProcessSerializer
CUSTOM_OPENAPI_SCHEMA = {
"get": extend_schema(
tags=[
"misc",
],
parameters=[
OpenApiParameter(
name="lang",
type=str,
location="query",
enum=list(dict(settings.LANGUAGES).keys()),
),
],
summary=_("OpenAPI schema in selected format with selected language"),
description=_(
"OpenApi3 schema for this API. Format can be selected via content negotiation. "
"Language can be selected with Accept-Language and query parameter both."
),
)
}
CACHE_SCHEMA = { CACHE_SCHEMA = {
"post": extend_schema( "post": extend_schema(
tags=[
"misc",
],
summary=_("cache I/O"), summary=_("cache I/O"),
description=_( description=_(
"apply only a key to read permitted data from cache.\n" "apply only a key to read permitted data from cache.\n"
@ -29,6 +56,9 @@ CACHE_SCHEMA = {
LANGUAGE_SCHEMA = { LANGUAGE_SCHEMA = {
"get": extend_schema( "get": extend_schema(
tags=[
"misc",
],
summary=_("get a list of supported languages"), summary=_("get a list of supported languages"),
responses={ responses={
status.HTTP_200_OK: LanguageSerializer(many=True), status.HTTP_200_OK: LanguageSerializer(many=True),
@ -38,6 +68,9 @@ LANGUAGE_SCHEMA = {
PARAMETERS_SCHEMA = { PARAMETERS_SCHEMA = {
"get": extend_schema( "get": extend_schema(
tags=[
"misc",
],
summary=_("get application's exposable parameters"), summary=_("get application's exposable parameters"),
responses={status.HTTP_200_OK: inline_serializer("parameters", fields={"key": CharField(default="value")})}, responses={status.HTTP_200_OK: inline_serializer("parameters", fields={"key": CharField(default="value")})},
) )
@ -45,6 +78,9 @@ PARAMETERS_SCHEMA = {
CONTACT_US_SCHEMA = { CONTACT_US_SCHEMA = {
"post": extend_schema( "post": extend_schema(
tags=[
"misc",
],
summary=_("send a message to the support team"), summary=_("send a message to the support team"),
request=ContactUsSerializer, request=ContactUsSerializer,
responses={ responses={
@ -56,6 +92,9 @@ CONTACT_US_SCHEMA = {
REQUEST_CURSED_URL_SCHEMA = { REQUEST_CURSED_URL_SCHEMA = {
"post": extend_schema( "post": extend_schema(
tags=[
"misc",
],
summary=_("request a CORSed URL"), summary=_("request a CORSed URL"),
request=inline_serializer("url", fields={"url": CharField(default="https://example.org")}), request=inline_serializer("url", fields={"url": CharField(default="https://example.org")}),
responses={ responses={
@ -67,6 +106,10 @@ REQUEST_CURSED_URL_SCHEMA = {
SEARCH_SCHEMA = { SEARCH_SCHEMA = {
"get": extend_schema( "get": extend_schema(
tags=[
"misc",
],
summary=_("Search between products, categories and brands"),
parameters=[ parameters=[
OpenApiParameter( OpenApiParameter(
name="q", name="q",
@ -76,11 +119,13 @@ SEARCH_SCHEMA = {
) )
], ],
responses={ responses={
200: inline_serializer( status.HTTP_200_OK: inline_serializer(
name="GlobalSearchResponse", name="GlobalSearchResponse",
fields={"results": DictField(child=ListField(child=DictField(child=CharField())))}, fields={"results": DictField(child=ListField(child=DictField(child=CharField())))},
), ),
400: inline_serializer(name="GlobalSearchErrorResponse", fields={"error": CharField()}), status.HTTP_400_BAD_REQUEST: inline_serializer(
name="GlobalSearchErrorResponse", fields={"error": CharField()}
),
}, },
description=(_("global search endpoint to query across project's tables")), description=(_("global search endpoint to query across project's tables")),
) )
@ -88,14 +133,38 @@ SEARCH_SCHEMA = {
BUY_AS_BUSINESS_SCHEMA = { BUY_AS_BUSINESS_SCHEMA = {
"post": extend_schema( "post": extend_schema(
tags=[
"misc",
],
summary=_("purchase an order as a business"), summary=_("purchase an order as a business"),
request=BuyAsBusinessOrderSerializer, request=BuyAsBusinessOrderSerializer,
responses={ responses={
201: TransactionProcessSerializer, status.HTTP_201_CREATED: TransactionProcessSerializer,
400: error, status.HTTP_400_BAD_REQUEST: error,
}, },
description=( description=(
_("purchase an order as a business, using the provided `products` with `product_uuid` and `attributes`.") _("purchase an order as a business, using the provided `products` with `product_uuid` and `attributes`.")
), ),
) )
} }
DOWNLOAD_DIGITAL_ASSET_SCHEMA = {
"get": extend_schema(
tags=[
"misc",
],
parameters=[
OpenApiParameter(
name="order_product_uuid",
location="path",
required=True,
allow_blank=False,
)
],
summary=_("download a digital asset from purchased digital order"),
responses={
status.HTTP_200_OK: FileResponse,
status.HTTP_400_BAD_REQUEST: error,
},
)
}

View file

@ -55,26 +55,44 @@ from engine.payments.serializers import TransactionProcessSerializer
ATTRIBUTE_GROUP_SCHEMA = { ATTRIBUTE_GROUP_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"attributeGroups",
],
summary=_("list all attribute groups (simple view)"), summary=_("list all attribute groups (simple view)"),
responses={status.HTTP_200_OK: AttributeGroupSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeGroupSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"attributeGroups",
],
summary=_("retrieve a single attribute group (detailed view)"), summary=_("retrieve a single attribute group (detailed view)"),
responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"attributeGroups",
],
summary=_("create an attribute group"), summary=_("create an attribute group"),
responses={status.HTTP_201_CREATED: AttributeGroupDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: AttributeGroupDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"attributeGroups",
],
summary=_("delete an attribute group"), summary=_("delete an attribute group"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"attributeGroups",
],
summary=_("rewrite an existing attribute group saving non-editables"), summary=_("rewrite an existing attribute group saving non-editables"),
responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"attributeGroups",
],
summary=_("rewrite some fields of an existing attribute group saving non-editables"), summary=_("rewrite some fields of an existing attribute group saving non-editables"),
responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS},
), ),
@ -82,26 +100,44 @@ ATTRIBUTE_GROUP_SCHEMA = {
ATTRIBUTE_SCHEMA = { ATTRIBUTE_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"attributes",
],
summary=_("list all attributes (simple view)"), summary=_("list all attributes (simple view)"),
responses={status.HTTP_200_OK: AttributeSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"attributes",
],
summary=_("retrieve a single attribute (detailed view)"), summary=_("retrieve a single attribute (detailed view)"),
responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"attributes",
],
summary=_("create an attribute"), summary=_("create an attribute"),
responses={status.HTTP_201_CREATED: AttributeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: AttributeDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"attributes",
],
summary=_("delete an attribute"), summary=_("delete an attribute"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"attributes",
],
summary=_("rewrite an existing attribute saving non-editables"), summary=_("rewrite an existing attribute saving non-editables"),
responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"attributes",
],
summary=_("rewrite some fields of an existing attribute saving non-editables"), summary=_("rewrite some fields of an existing attribute saving non-editables"),
responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS},
), ),
@ -109,26 +145,44 @@ ATTRIBUTE_SCHEMA = {
ATTRIBUTE_VALUE_SCHEMA = { ATTRIBUTE_VALUE_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"attributeValues",
],
summary=_("list all attribute values (simple view)"), summary=_("list all attribute values (simple view)"),
responses={status.HTTP_200_OK: AttributeValueSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeValueSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"attributeValues",
],
summary=_("retrieve a single attribute value (detailed view)"), summary=_("retrieve a single attribute value (detailed view)"),
responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"attributeValues",
],
summary=_("create an attribute value"), summary=_("create an attribute value"),
responses={status.HTTP_201_CREATED: AttributeValueDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: AttributeValueDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"attributeValues",
],
summary=_("delete an attribute value"), summary=_("delete an attribute value"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"attributeValues",
],
summary=_("rewrite an existing attribute value saving non-editables"), summary=_("rewrite an existing attribute value saving non-editables"),
responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"attributeValues",
],
summary=_("rewrite some fields of an existing attribute value saving non-editables"), summary=_("rewrite some fields of an existing attribute value saving non-editables"),
responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS},
), ),
@ -136,11 +190,17 @@ ATTRIBUTE_VALUE_SCHEMA = {
CATEGORY_SCHEMA = { CATEGORY_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"categories",
],
summary=_("list all categories (simple view)"), summary=_("list all categories (simple view)"),
description=_("list all categories (simple view)"), description=_("list all categories (simple view)"),
responses={status.HTTP_200_OK: CategorySimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: CategorySimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"categories",
],
summary=_("retrieve a single category (detailed view)"), summary=_("retrieve a single category (detailed view)"),
description=_("retrieve a single category (detailed view)"), description=_("retrieve a single category (detailed view)"),
parameters=[ parameters=[
@ -154,26 +214,41 @@ CATEGORY_SCHEMA = {
responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"categories",
],
summary=_("create a category"), summary=_("create a category"),
description=_("create a category"), description=_("create a category"),
responses={status.HTTP_201_CREATED: CategoryDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: CategoryDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"categories",
],
summary=_("delete a category"), summary=_("delete a category"),
description=_("delete a category"), description=_("delete a category"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"categories",
],
summary=_("rewrite an existing category saving non-editables"), summary=_("rewrite an existing category saving non-editables"),
description=_("rewrite an existing category saving non-editables"), description=_("rewrite an existing category saving non-editables"),
responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"categories",
],
summary=_("rewrite some fields of an existing category saving non-editables"), summary=_("rewrite some fields of an existing category saving non-editables"),
description=_("rewrite some fields of an existing category saving non-editables"), description=_("rewrite some fields of an existing category saving non-editables"),
responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS},
), ),
"seo_meta": extend_schema( "seo_meta": extend_schema(
tags=[
"categories",
],
summary=_("SEO Meta snapshot"), summary=_("SEO Meta snapshot"),
description=_("returns a snapshot of the category's SEO meta data"), description=_("returns a snapshot of the category's SEO meta data"),
parameters=[ parameters=[
@ -193,6 +268,9 @@ CATEGORY_SCHEMA = {
ORDER_SCHEMA = { ORDER_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"orders",
],
summary=_("list all orders (simple view)"), summary=_("list all orders (simple view)"),
description=_("for non-staff users, only their own orders are returned."), description=_("for non-staff users, only their own orders are returned."),
parameters=[ parameters=[
@ -252,6 +330,9 @@ ORDER_SCHEMA = {
responses={status.HTTP_200_OK: OrderSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"orders",
],
summary=_("retrieve a single order (detailed view)"), summary=_("retrieve a single order (detailed view)"),
parameters=[ parameters=[
OpenApiParameter( OpenApiParameter(
@ -264,23 +345,38 @@ ORDER_SCHEMA = {
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"orders",
],
summary=_("create an order"), summary=_("create an order"),
description=_("doesn't work for non-staff users."), description=_("doesn't work for non-staff users."),
responses={status.HTTP_201_CREATED: OrderDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: OrderDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"orders",
],
summary=_("delete an order"), summary=_("delete an order"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"orders",
],
summary=_("rewrite an existing order saving non-editables"), summary=_("rewrite an existing order saving non-editables"),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"orders",
],
summary=_("rewrite some fields of an existing order saving non-editables"), summary=_("rewrite some fields of an existing order saving non-editables"),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
), ),
"buy": extend_schema( "buy": extend_schema(
tags=[
"orders",
],
summary=_("purchase an order"), summary=_("purchase an order"),
description=_( description=_(
"finalizes the order purchase. if `force_balance` is used," "finalizes the order purchase. if `force_balance` is used,"
@ -294,7 +390,21 @@ ORDER_SCHEMA = {
**BASE_ERRORS, **BASE_ERRORS,
}, },
), ),
"current": extend_schema(
tags=[
"orders",
],
summary=_("retrieve current pending order of a user"),
description=_("retrieves a current pending order of an authenticated user"),
responses={
status.HTTP_200_OK: OrderDetailSerializer(),
**BASE_ERRORS,
},
),
"buy_unregistered": extend_schema( "buy_unregistered": extend_schema(
tags=[
"orders",
],
summary=_("purchase an order without account creation"), summary=_("purchase an order without account creation"),
description=_("finalizes the order purchase for a non-registered user."), description=_("finalizes the order purchase for a non-registered user."),
request=BuyUnregisteredOrderSerializer(), request=BuyUnregisteredOrderSerializer(),
@ -304,24 +414,36 @@ ORDER_SCHEMA = {
}, },
), ),
"add_order_product": extend_schema( "add_order_product": extend_schema(
tags=[
"orders",
],
summary=_("add product to order"), summary=_("add product to order"),
description=_("adds a product to an order using the provided `product_uuid` and `attributes`."), description=_("adds a product to an order using the provided `product_uuid` and `attributes`."),
request=AddOrderProductSerializer(), request=AddOrderProductSerializer(),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
), ),
"bulk_add_order_products": extend_schema( "bulk_add_order_products": extend_schema(
tags=[
"orders",
],
summary=_("add a list of products to order, quantities will not count"), summary=_("add a list of products to order, quantities will not count"),
description=_("adds a list of products to an order using the provided `product_uuid` and `attributes`."), description=_("adds a list of products to an order using the provided `product_uuid` and `attributes`."),
request=BulkAddOrderProductsSerializer(), request=BulkAddOrderProductsSerializer(),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
), ),
"remove_order_product": extend_schema( "remove_order_product": extend_schema(
tags=[
"orders",
],
summary=_("remove product from order"), summary=_("remove product from order"),
description=_("removes a product from an order using the provided `product_uuid` and `attributes`."), description=_("removes a product from an order using the provided `product_uuid` and `attributes`."),
request=RemoveOrderProductSerializer(), request=RemoveOrderProductSerializer(),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
), ),
"bulk_remove_order_products": extend_schema( "bulk_remove_order_products": extend_schema(
tags=[
"orders",
],
summary=_("remove product from order, quantities will not count"), summary=_("remove product from order, quantities will not count"),
description=_("removes a list of products from an order using the provided `product_uuid` and `attributes`"), description=_("removes a list of products from an order using the provided `product_uuid` and `attributes`"),
request=BulkRemoveOrderProductsSerializer(), request=BulkRemoveOrderProductsSerializer(),
@ -331,50 +453,91 @@ ORDER_SCHEMA = {
WISHLIST_SCHEMA = { WISHLIST_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"wishlists",
],
summary=_("list all wishlists (simple view)"), summary=_("list all wishlists (simple view)"),
description=_("for non-staff users, only their own wishlists are returned."), description=_("for non-staff users, only their own wishlists are returned."),
responses={status.HTTP_200_OK: WishlistSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: WishlistSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"wishlists",
],
summary=_("retrieve a single wishlist (detailed view)"), summary=_("retrieve a single wishlist (detailed view)"),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"wishlists",
],
summary=_("create an wishlist"), summary=_("create an wishlist"),
description=_("Doesn't work for non-staff users."), description=_("Doesn't work for non-staff users."),
responses={status.HTTP_201_CREATED: WishlistDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: WishlistDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"wishlists",
],
summary=_("delete an wishlist"), summary=_("delete an wishlist"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"wishlists",
],
summary=_("rewrite an existing wishlist saving non-editables"), summary=_("rewrite an existing wishlist saving non-editables"),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"wishlists",
],
summary=_("rewrite some fields of an existing wishlist saving non-editables"), summary=_("rewrite some fields of an existing wishlist saving non-editables"),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
), ),
"current": extend_schema(
tags=[
"wishlists",
],
summary=_("retrieve current pending wishlist of a user"),
description=_("retrieves a current pending wishlist of an authenticated user"),
responses={
status.HTTP_200_OK: WishlistDetailSerializer(),
**BASE_ERRORS,
},
),
"add_wishlist_product": extend_schema( "add_wishlist_product": extend_schema(
tags=[
"wishlists",
],
summary=_("add product to wishlist"), summary=_("add product to wishlist"),
description=_("adds a product to an wishlist using the provided `product_uuid`"), description=_("adds a product to an wishlist using the provided `product_uuid`"),
request=AddWishlistProductSerializer(), request=AddWishlistProductSerializer(),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
), ),
"remove_wishlist_product": extend_schema( "remove_wishlist_product": extend_schema(
tags=[
"wishlists",
],
summary=_("remove product from wishlist"), summary=_("remove product from wishlist"),
description=_("removes a product from an wishlist using the provided `product_uuid`"), description=_("removes a product from an wishlist using the provided `product_uuid`"),
request=RemoveWishlistProductSerializer(), request=RemoveWishlistProductSerializer(),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
), ),
"bulk_add_wishlist_products": extend_schema( "bulk_add_wishlist_products": extend_schema(
tags=[
"wishlists",
],
summary=_("add many products to wishlist"), summary=_("add many products to wishlist"),
description=_("adds many products to an wishlist using the provided `product_uuids`"), description=_("adds many products to an wishlist using the provided `product_uuids`"),
request=BulkAddWishlistProductSerializer(), request=BulkAddWishlistProductSerializer(),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
), ),
"bulk_remove_wishlist_products": extend_schema( "bulk_remove_wishlist_products": extend_schema(
tags=[
"wishlists",
],
summary=_("remove many products from wishlist"), summary=_("remove many products from wishlist"),
description=_("removes many products from an wishlist using the provided `product_uuids`"), description=_("removes many products from an wishlist using the provided `product_uuids`"),
request=BulkRemoveWishlistProductSerializer(), request=BulkRemoveWishlistProductSerializer(),
@ -399,6 +562,9 @@ ATTRIBUTES_DESC = _(
PRODUCT_SCHEMA = { PRODUCT_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"products",
],
summary=_("list all products (simple view)"), summary=_("list all products (simple view)"),
description=_("list all products (simple view)"), description=_("list all products (simple view)"),
parameters=[ parameters=[
@ -426,6 +592,9 @@ PRODUCT_SCHEMA = {
}, },
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"products",
],
summary=_("retrieve a single product (detailed view)"), summary=_("retrieve a single product (detailed view)"),
description=_("retrieve a single product (detailed view)"), description=_("retrieve a single product (detailed view)"),
parameters=[ parameters=[
@ -442,6 +611,9 @@ PRODUCT_SCHEMA = {
}, },
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"products",
],
summary=_("create a product"), summary=_("create a product"),
description=_("create a product"), description=_("create a product"),
responses={ responses={
@ -450,6 +622,9 @@ PRODUCT_SCHEMA = {
}, },
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"products",
],
summary=_("rewrite an existing product, preserving non-editable fields"), summary=_("rewrite an existing product, preserving non-editable fields"),
description=_("rewrite an existing product, preserving non-editable fields"), description=_("rewrite an existing product, preserving non-editable fields"),
parameters=[ parameters=[
@ -466,6 +641,9 @@ PRODUCT_SCHEMA = {
}, },
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"products",
],
summary=_("update some fields of an existing product, preserving non-editable fields"), summary=_("update some fields of an existing product, preserving non-editable fields"),
description=_("update some fields of an existing product, preserving non-editable fields"), description=_("update some fields of an existing product, preserving non-editable fields"),
parameters=[ parameters=[
@ -482,6 +660,9 @@ PRODUCT_SCHEMA = {
}, },
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"products",
],
summary=_("delete a product"), summary=_("delete a product"),
description=_("delete a product"), description=_("delete a product"),
parameters=[ parameters=[
@ -498,6 +679,9 @@ PRODUCT_SCHEMA = {
}, },
), ),
"feedbacks": extend_schema( "feedbacks": extend_schema(
tags=[
"products",
],
summary=_("lists all permitted feedbacks for a product"), summary=_("lists all permitted feedbacks for a product"),
description=_("lists all permitted feedbacks for a product"), description=_("lists all permitted feedbacks for a product"),
parameters=[ parameters=[
@ -514,6 +698,9 @@ PRODUCT_SCHEMA = {
}, },
), ),
"seo_meta": extend_schema( "seo_meta": extend_schema(
tags=[
"products",
],
summary=_("SEO Meta snapshot"), summary=_("SEO Meta snapshot"),
description=_("returns a snapshot of the product's SEO meta data"), description=_("returns a snapshot of the product's SEO meta data"),
parameters=[ parameters=[
@ -533,6 +720,9 @@ PRODUCT_SCHEMA = {
ADDRESS_SCHEMA = { ADDRESS_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"addresses",
],
summary=_("list all addresses"), summary=_("list all addresses"),
responses={ responses={
status.HTTP_200_OK: AddressSerializer(many=True), status.HTTP_200_OK: AddressSerializer(many=True),
@ -540,6 +730,9 @@ ADDRESS_SCHEMA = {
}, },
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"addresses",
],
summary=_("retrieve a single address"), summary=_("retrieve a single address"),
responses={ responses={
status.HTTP_200_OK: AddressSerializer(), status.HTTP_200_OK: AddressSerializer(),
@ -547,6 +740,9 @@ ADDRESS_SCHEMA = {
}, },
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"addresses",
],
summary=_("create a new address"), summary=_("create a new address"),
request=AddressCreateSerializer(), request=AddressCreateSerializer(),
responses={ responses={
@ -555,6 +751,9 @@ ADDRESS_SCHEMA = {
}, },
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"addresses",
],
summary=_("delete an address"), summary=_("delete an address"),
responses={ responses={
status.HTTP_204_NO_CONTENT: {}, status.HTTP_204_NO_CONTENT: {},
@ -562,6 +761,9 @@ ADDRESS_SCHEMA = {
}, },
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"addresses",
],
summary=_("update an entire address"), summary=_("update an entire address"),
request=AddressSerializer(), request=AddressSerializer(),
responses={ responses={
@ -570,6 +772,9 @@ ADDRESS_SCHEMA = {
}, },
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"addresses",
],
summary=_("partially update an address"), summary=_("partially update an address"),
request=AddressSerializer(), request=AddressSerializer(),
responses={ responses={
@ -578,6 +783,9 @@ ADDRESS_SCHEMA = {
}, },
), ),
"autocomplete": extend_schema( "autocomplete": extend_schema(
tags=[
"addresses",
],
summary=_("autocomplete address suggestions"), summary=_("autocomplete address suggestions"),
parameters=[ parameters=[
OpenApiParameter( OpenApiParameter(
@ -602,26 +810,44 @@ ADDRESS_SCHEMA = {
FEEDBACK_SCHEMA = { FEEDBACK_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"feedbacks",
],
summary=_("list all feedbacks (simple view)"), summary=_("list all feedbacks (simple view)"),
responses={status.HTTP_200_OK: FeedbackSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: FeedbackSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"feedbacks",
],
summary=_("retrieve a single feedback (detailed view)"), summary=_("retrieve a single feedback (detailed view)"),
responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"feedbacks",
],
summary=_("create a feedback"), summary=_("create a feedback"),
responses={status.HTTP_201_CREATED: FeedbackDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: FeedbackDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"feedbacks",
],
summary=_("delete a feedback"), summary=_("delete a feedback"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"feedbacks",
],
summary=_("rewrite an existing feedback saving non-editables"), summary=_("rewrite an existing feedback saving non-editables"),
responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"feedbacks",
],
summary=_("rewrite some fields of an existing feedback saving non-editables"), summary=_("rewrite some fields of an existing feedback saving non-editables"),
responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS},
), ),
@ -629,6 +855,9 @@ FEEDBACK_SCHEMA = {
ORDER_PRODUCT_SCHEMA = { ORDER_PRODUCT_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"orderProducts",
],
summary=_("list all orderproduct relations (simple view)"), summary=_("list all orderproduct relations (simple view)"),
responses={ responses={
status.HTTP_200_OK: OrderProductSimpleSerializer(many=True), status.HTTP_200_OK: OrderProductSimpleSerializer(many=True),
@ -636,6 +865,9 @@ ORDER_PRODUCT_SCHEMA = {
}, },
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"orderProducts",
],
summary=_("retrieve a single orderproduct relation (detailed view)"), summary=_("retrieve a single orderproduct relation (detailed view)"),
responses={ responses={
status.HTTP_200_OK: OrderProductDetailSerializer(), status.HTTP_200_OK: OrderProductDetailSerializer(),
@ -643,6 +875,9 @@ ORDER_PRODUCT_SCHEMA = {
}, },
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"orderProducts",
],
summary=_("create a new orderproduct relation"), summary=_("create a new orderproduct relation"),
responses={ responses={
status.HTTP_201_CREATED: OrderProductDetailSerializer(), status.HTTP_201_CREATED: OrderProductDetailSerializer(),
@ -650,6 +885,9 @@ ORDER_PRODUCT_SCHEMA = {
}, },
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"orderProducts",
],
summary=_("replace an existing orderproduct relation"), summary=_("replace an existing orderproduct relation"),
responses={ responses={
status.HTTP_200_OK: OrderProductDetailSerializer(), status.HTTP_200_OK: OrderProductDetailSerializer(),
@ -657,6 +895,9 @@ ORDER_PRODUCT_SCHEMA = {
}, },
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"orderProducts",
],
summary=_("partially update an existing orderproduct relation"), summary=_("partially update an existing orderproduct relation"),
responses={ responses={
status.HTTP_200_OK: OrderProductDetailSerializer(), status.HTTP_200_OK: OrderProductDetailSerializer(),
@ -664,6 +905,9 @@ ORDER_PRODUCT_SCHEMA = {
}, },
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"orderProducts",
],
summary=_("delete an orderproduct relation"), summary=_("delete an orderproduct relation"),
responses={ responses={
status.HTTP_204_NO_CONTENT: {}, status.HTTP_204_NO_CONTENT: {},
@ -671,6 +915,9 @@ ORDER_PRODUCT_SCHEMA = {
}, },
), ),
"do_feedback": extend_schema( "do_feedback": extend_schema(
tags=[
"orderProducts",
],
summary=_("add or remove feedback on an orderproduct relation"), summary=_("add or remove feedback on an orderproduct relation"),
request=DoFeedbackSerializer, request=DoFeedbackSerializer,
responses={ responses={
@ -685,10 +932,16 @@ ORDER_PRODUCT_SCHEMA = {
BRAND_SCHEMA = { BRAND_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"brands",
],
summary=_("list all brands (simple view)"), summary=_("list all brands (simple view)"),
responses={status.HTTP_200_OK: BrandSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: BrandSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"brands",
],
summary=_("retrieve a single brand (detailed view)"), summary=_("retrieve a single brand (detailed view)"),
parameters=[ parameters=[
OpenApiParameter( OpenApiParameter(
@ -701,23 +954,38 @@ BRAND_SCHEMA = {
responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"brands",
],
summary=_("create a brand"), summary=_("create a brand"),
responses={status.HTTP_201_CREATED: BrandDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: BrandDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"brands",
],
summary=_("delete a brand"), summary=_("delete a brand"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"brands",
],
summary=_("rewrite an existing brand saving non-editables"), summary=_("rewrite an existing brand saving non-editables"),
responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"brands",
],
summary=_("rewrite some fields of an existing brand saving non-editables"), summary=_("rewrite some fields of an existing brand saving non-editables"),
responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS},
), ),
"seo_meta": extend_schema( "seo_meta": extend_schema(
summary=_("SEO Meta snapshot for brand"), tags=[
"brands",
],
summary=_("SEO Meta snapshot"),
parameters=[ parameters=[
OpenApiParameter( OpenApiParameter(
name="lookup_value", name="lookup_value",
@ -732,26 +1000,44 @@ BRAND_SCHEMA = {
VENDOR_SCHEMA = { VENDOR_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"vendors",
],
summary=_("list all vendors (simple view)"), summary=_("list all vendors (simple view)"),
responses={status.HTTP_200_OK: VendorSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: VendorSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"vendors",
],
summary=_("retrieve a single vendor (detailed view)"), summary=_("retrieve a single vendor (detailed view)"),
responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"vendors",
],
summary=_("create a vendor"), summary=_("create a vendor"),
responses={status.HTTP_201_CREATED: VendorDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: VendorDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"vendors",
],
summary=_("delete a vendor"), summary=_("delete a vendor"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"vendors",
],
summary=_("rewrite an existing vendor saving non-editables"), summary=_("rewrite an existing vendor saving non-editables"),
responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"vendors",
],
summary=_("rewrite some fields of an existing vendor saving non-editables"), summary=_("rewrite some fields of an existing vendor saving non-editables"),
responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS},
), ),
@ -759,26 +1045,44 @@ VENDOR_SCHEMA = {
PRODUCT_IMAGE_SCHEMA = { PRODUCT_IMAGE_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"productImages",
],
summary=_("list all product images (simple view)"), summary=_("list all product images (simple view)"),
responses={status.HTTP_200_OK: ProductImageSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductImageSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"productImages",
],
summary=_("retrieve a single product image (detailed view)"), summary=_("retrieve a single product image (detailed view)"),
responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"productImages",
],
summary=_("create a product image"), summary=_("create a product image"),
responses={status.HTTP_201_CREATED: ProductImageDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: ProductImageDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"productImages",
],
summary=_("delete a product image"), summary=_("delete a product image"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"productImages",
],
summary=_("rewrite an existing product image saving non-editables"), summary=_("rewrite an existing product image saving non-editables"),
responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"productImages",
],
summary=_("rewrite some fields of an existing product image saving non-editables"), summary=_("rewrite some fields of an existing product image saving non-editables"),
responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS},
), ),
@ -786,26 +1090,44 @@ PRODUCT_IMAGE_SCHEMA = {
PROMOCODE_SCHEMA = { PROMOCODE_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"promocodes",
],
summary=_("list all promo codes (simple view)"), summary=_("list all promo codes (simple view)"),
responses={status.HTTP_200_OK: PromoCodeSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromoCodeSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"promocodes",
],
summary=_("retrieve a single promo code (detailed view)"), summary=_("retrieve a single promo code (detailed view)"),
responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"promocodes",
],
summary=_("create a promo code"), summary=_("create a promo code"),
responses={status.HTTP_201_CREATED: PromoCodeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: PromoCodeDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"promocodes",
],
summary=_("delete a promo code"), summary=_("delete a promo code"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"promocodes",
],
summary=_("rewrite an existing promo code saving non-editables"), summary=_("rewrite an existing promo code saving non-editables"),
responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"promocodes",
],
summary=_("rewrite some fields of an existing promo code saving non-editables"), summary=_("rewrite some fields of an existing promo code saving non-editables"),
responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS},
), ),
@ -813,26 +1135,44 @@ PROMOCODE_SCHEMA = {
PROMOTION_SCHEMA = { PROMOTION_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"promotions",
],
summary=_("list all promotions (simple view)"), summary=_("list all promotions (simple view)"),
responses={status.HTTP_200_OK: PromotionSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromotionSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"promotions",
],
summary=_("retrieve a single promotion (detailed view)"), summary=_("retrieve a single promotion (detailed view)"),
responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"promotions",
],
summary=_("create a promotion"), summary=_("create a promotion"),
responses={status.HTTP_201_CREATED: PromotionDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: PromotionDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"promotions",
],
summary=_("delete a promotion"), summary=_("delete a promotion"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"promotions",
],
summary=_("rewrite an existing promotion saving non-editables"), summary=_("rewrite an existing promotion saving non-editables"),
responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"promotions",
],
summary=_("rewrite some fields of an existing promotion saving non-editables"), summary=_("rewrite some fields of an existing promotion saving non-editables"),
responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS},
), ),
@ -840,26 +1180,44 @@ PROMOTION_SCHEMA = {
STOCK_SCHEMA = { STOCK_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"stocks",
],
summary=_("list all stocks (simple view)"), summary=_("list all stocks (simple view)"),
responses={status.HTTP_200_OK: StockSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: StockSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"stocks",
],
summary=_("retrieve a single stock (detailed view)"), summary=_("retrieve a single stock (detailed view)"),
responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"stocks",
],
summary=_("create a stock record"), summary=_("create a stock record"),
responses={status.HTTP_201_CREATED: StockDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: StockDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"stocks",
],
summary=_("delete a stock record"), summary=_("delete a stock record"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"stocks",
],
summary=_("rewrite an existing stock record saving non-editables"), summary=_("rewrite an existing stock record saving non-editables"),
responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"stocks",
],
summary=_("rewrite some fields of an existing stock record saving non-editables"), summary=_("rewrite some fields of an existing stock record saving non-editables"),
responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS},
), ),
@ -867,26 +1225,44 @@ STOCK_SCHEMA = {
PRODUCT_TAG_SCHEMA = { PRODUCT_TAG_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"productTags",
],
summary=_("list all product tags (simple view)"), summary=_("list all product tags (simple view)"),
responses={status.HTTP_200_OK: ProductTagSimpleSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductTagSimpleSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"productTags",
],
summary=_("retrieve a single product tag (detailed view)"), summary=_("retrieve a single product tag (detailed view)"),
responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS},
), ),
"create": extend_schema( "create": extend_schema(
tags=[
"productTags",
],
summary=_("create a product tag"), summary=_("create a product tag"),
responses={status.HTTP_201_CREATED: ProductTagDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_201_CREATED: ProductTagDetailSerializer(), **BASE_ERRORS},
), ),
"destroy": extend_schema( "destroy": extend_schema(
tags=[
"productTags",
],
summary=_("delete a product tag"), summary=_("delete a product tag"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS}, responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
), ),
"update": extend_schema( "update": extend_schema(
tags=[
"productTags",
],
summary=_("rewrite an existing product tag saving non-editables"), summary=_("rewrite an existing product tag saving non-editables"),
responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS},
), ),
"partial_update": extend_schema( "partial_update": extend_schema(
tags=[
"productTags",
],
summary=_("rewrite some fields of an existing product tag saving non-editables"), summary=_("rewrite some fields of an existing product tag saving non-editables"),
responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS}, responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS},
), ),

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -20,7 +20,7 @@ from django_ratelimit.decorators import ratelimit
from djangorestframework_camel_case.render import CamelCaseJSONRenderer from djangorestframework_camel_case.render import CamelCaseJSONRenderer
from djangorestframework_camel_case.util import camelize from djangorestframework_camel_case.util import camelize
from drf_spectacular.utils import extend_schema_view from drf_spectacular.utils import extend_schema_view
from drf_spectacular.views import SpectacularRedocView, SpectacularSwaggerView from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView
from graphene_file_upload.django import FileUploadGraphQLView from graphene_file_upload.django import FileUploadGraphQLView
from rest_framework import status from rest_framework import status
from rest_framework.permissions import AllowAny from rest_framework.permissions import AllowAny
@ -36,13 +36,15 @@ from engine.core.docs.drf.views import (
BUY_AS_BUSINESS_SCHEMA, BUY_AS_BUSINESS_SCHEMA,
CACHE_SCHEMA, CACHE_SCHEMA,
CONTACT_US_SCHEMA, CONTACT_US_SCHEMA,
CUSTOM_OPENAPI_SCHEMA,
DOWNLOAD_DIGITAL_ASSET_SCHEMA,
LANGUAGE_SCHEMA, LANGUAGE_SCHEMA,
PARAMETERS_SCHEMA, PARAMETERS_SCHEMA,
REQUEST_CURSED_URL_SCHEMA, REQUEST_CURSED_URL_SCHEMA,
SEARCH_SCHEMA, SEARCH_SCHEMA,
) )
from engine.core.elasticsearch import process_query from engine.core.elasticsearch import process_query
from engine.core.models import DigitalAssetDownload, Order from engine.core.models import DigitalAssetDownload, Order, OrderProduct
from engine.core.serializers import ( from engine.core.serializers import (
BuyAsBusinessOrderSerializer, BuyAsBusinessOrderSerializer,
CacheOperatorSerializer, CacheOperatorSerializer,
@ -94,6 +96,12 @@ class CustomGraphQLView(FileUploadGraphQLView):
return request return request
@extend_schema_view(**CUSTOM_OPENAPI_SCHEMA)
class CustomSpectacularAPIView(SpectacularAPIView):
def get(self, request, *args, **kwargs):
return super().get(request, *args, **kwargs)
class CustomSwaggerView(SpectacularSwaggerView): class CustomSwaggerView(SpectacularSwaggerView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
@ -300,6 +308,7 @@ class BuyAsBusinessView(APIView):
) )
@extend_schema_view(**DOWNLOAD_DIGITAL_ASSET_SCHEMA)
class DownloadDigitalAssetView(APIView): class DownloadDigitalAssetView(APIView):
__doc__ = _( # type: ignore [assignment] __doc__ = _( # type: ignore [assignment]
"Handles the downloading of a digital asset associated with an order.\n" "Handles the downloading of a digital asset associated with an order.\n"
@ -311,25 +320,30 @@ class DownloadDigitalAssetView(APIView):
def get(self, request: HttpRequest, *args, **kwargs) -> HttpResponse | FileResponse: def get(self, request: HttpRequest, *args, **kwargs) -> HttpResponse | FileResponse:
try: try:
op_uuid = str(kwargs.get("order_product_uuid")) op_uuid = str(kwargs.get("order_product_uuid"))
if not op_uuid: if not op_uuid:
raise BadRequest(_("order_product_uuid is required")) raise BadRequest(_("order_product_uuid is required"))
uuid = urlsafe_base64_decode(op_uuid).decode("utf-8") uuid = urlsafe_base64_decode(op_uuid).decode("utf-8")
download = DigitalAssetDownload.objects.get(order_product__uuid=uuid) try:
order_product = OrderProduct.objects.get(uuid=uuid)
except OrderProduct.DoesNotExist as dne:
raise BadRequest(_("order product does not exist")) from dne
if download.num_downloads >= 1: if order_product.download.num_downloads >= 1:
raise BadRequest(_("you can only download the digital asset once")) raise BadRequest(_("you can only download the digital asset once"))
if download.order_product.status != "FINISHED": if order_product.download.order_product.status != "FINISHED":
raise BadRequest(_("the order must be paid before downloading the digital asset")) raise BadRequest(_("the order must be paid before downloading the digital asset"))
download.num_downloads += 1 order_product.download.num_downloads += 1
download.save() order_product.download.save()
if not download.order_product.product: if not order_product.download.order_product.product:
raise BadRequest(_("the order product does not have a product")) raise BadRequest(_("the order product does not have a product"))
file_path = download.order_product.product.stocks.first().digital_asset.path # type: ignore [union-attr] file_path = order_product.download.order_product.product.stocks.first().digital_asset.path # type: ignore [union-attr]
content_type, encoding = mimetypes.guess_type(file_path) content_type, encoding = mimetypes.guess_type(file_path)
if not content_type: if not content_type:
@ -352,8 +366,7 @@ class DownloadDigitalAssetView(APIView):
data=camelize( data=camelize(
{ {
"error": "An error occurred while trying to download the digital asset", "error": "An error occurred while trying to download the digital asset",
"traceback": traceback.format_exc() if settings.DEBUG else None, "detail": traceback.format_exc() if settings.DEBUG else None,
"received": {"order_product_uuid": kwargs.get("order_product_uuid", "")},
} }
), ),
status=status.HTTP_503_SERVICE_UNAVAILABLE, status=status.HTTP_503_SERVICE_UNAVAILABLE,

View file

@ -7,6 +7,9 @@ from engine.payments.serializers import DepositSerializer, TransactionProcessSer
DEPOSIT_SCHEMA = { DEPOSIT_SCHEMA = {
"post": extend_schema( "post": extend_schema(
tags=[
"payments",
],
summary=_("deposit to balance"), summary=_("deposit to balance"),
description=_("deposit some money to balance"), description=_("deposit some money to balance"),
request=DepositSerializer, request=DepositSerializer,

View file

@ -8,10 +8,16 @@ from engine.payments.serializers import TransactionSerializer
TRANSACTION_SCHEMA = { TRANSACTION_SCHEMA = {
"list": extend_schema( "list": extend_schema(
tags=[
"payments",
],
summary=_("list all transactions (read-only)"), summary=_("list all transactions (read-only)"),
responses={status.HTTP_200_OK: TransactionSerializer(many=True), **BASE_ERRORS}, responses={status.HTTP_200_OK: TransactionSerializer(many=True), **BASE_ERRORS},
), ),
"retrieve": extend_schema( "retrieve": extend_schema(
tags=[
"payments",
],
summary=_("retrieve a single transaction (read-only)"), summary=_("retrieve a single transaction (read-only)"),
parameters=[ parameters=[
OpenApiParameter( OpenApiParameter(

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "الإيداع"
msgid "withdraw" msgid "withdraw"
msgstr "سحب" msgstr "سحب"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "الإيداع في الرصيد" msgstr "الإيداع في الرصيد"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "إيداع بعض الأموال لتحقيق التوازن" msgstr "إيداع بعض الأموال لتحقيق التوازن"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "سرد جميع المعاملات (للقراءة فقط)" msgstr "سرد جميع المعاملات (للقراءة فقط)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "استرداد معاملة واحدة (للقراءة فقط)" msgstr "استرداد معاملة واحدة (للقراءة فقط)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "معرّف المعاملة UUID" msgstr "معرّف المعاملة UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Vklad"
msgid "withdraw" msgid "withdraw"
msgstr "Stáhnout" msgstr "Stáhnout"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Vklad do zůstatku" msgstr "Vklad do zůstatku"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Vložte nějaké peníze na účet" msgstr "Vložte nějaké peníze na účet"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "Seznam všech transakcí (pouze pro čtení)" msgstr "Seznam všech transakcí (pouze pro čtení)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Získání jedné transakce (pouze pro čtení)" msgstr "Získání jedné transakce (pouze pro čtení)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "UUID transakce" msgstr "UUID transakce"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Indskud"
msgid "withdraw" msgid "withdraw"
msgstr "Træk dig tilbage" msgstr "Træk dig tilbage"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Indbetaling til saldo" msgstr "Indbetaling til saldo"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Sæt nogle penge ind på saldoen" msgstr "Sæt nogle penge ind på saldoen"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "Liste over alle transaktioner (skrivebeskyttet)" msgstr "Liste over alle transaktioner (skrivebeskyttet)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Hent en enkelt transaktion (skrivebeskyttet)" msgstr "Hent en enkelt transaktion (skrivebeskyttet)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "Transaktions-UUID" msgstr "Transaktions-UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Einzahlung"
msgid "withdraw" msgid "withdraw"
msgstr "Zurückziehen" msgstr "Zurückziehen"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Einzahlung auf den Saldo" msgstr "Einzahlung auf den Saldo"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Einzahlung von Geld zum Ausgleich" msgstr "Einzahlung von Geld zum Ausgleich"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "Alle Transaktionen auflisten (schreibgeschützt)" msgstr "Alle Transaktionen auflisten (schreibgeschützt)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Eine einzelne Transaktion abrufen (schreibgeschützt)" msgstr "Eine einzelne Transaktion abrufen (schreibgeschützt)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "Transaktion UUID" msgstr "Transaktion UUID"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -41,23 +41,23 @@ msgstr "Deposit"
msgid "withdraw" msgid "withdraw"
msgstr "Withdraw" msgstr "Withdraw"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Deposit to balance" msgstr "Deposit to balance"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Deposit some money to balance" msgstr "Deposit some money to balance"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "List all transactions (read-only)" msgstr "List all transactions (read-only)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Retrieve a single transaction (read-only)" msgstr "Retrieve a single transaction (read-only)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "Transaction UUID" msgstr "Transaction UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Deposit"
msgid "withdraw" msgid "withdraw"
msgstr "Withdraw" msgstr "Withdraw"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Deposit to balance" msgstr "Deposit to balance"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Deposit some money to balance" msgstr "Deposit some money to balance"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "List all transactions (read-only)" msgstr "List all transactions (read-only)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Retrieve a single transaction (read-only)" msgstr "Retrieve a single transaction (read-only)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "Transaction UUID" msgstr "Transaction UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Depósito"
msgid "withdraw" msgid "withdraw"
msgstr "Retirar" msgstr "Retirar"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Depósito a cuenta" msgstr "Depósito a cuenta"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Depositar dinero para equilibrar" msgstr "Depositar dinero para equilibrar"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "Listar todas las transacciones (sólo lectura)" msgstr "Listar todas las transacciones (sólo lectura)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Recuperar una única transacción (sólo lectura)" msgstr "Recuperar una única transacción (sólo lectura)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "UUID de la transacción" msgstr "UUID de la transacción"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -40,23 +40,23 @@ msgstr ""
msgid "withdraw" msgid "withdraw"
msgstr "" msgstr ""
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "" msgstr ""
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Dépôt"
msgid "withdraw" msgid "withdraw"
msgstr "Se retirer" msgstr "Se retirer"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Dépôt au solde" msgstr "Dépôt au solde"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Déposer de l'argent sur le compte" msgstr "Déposer de l'argent sur le compte"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "Liste de toutes les transactions (en lecture seule)" msgstr "Liste de toutes les transactions (en lecture seule)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Récupérer une transaction unique (en lecture seule)" msgstr "Récupérer une transaction unique (en lecture seule)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "UUID de la transaction" msgstr "UUID de la transaction"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "הפקדה"
msgid "withdraw" msgid "withdraw"
msgstr "למשוך" msgstr "למשוך"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "הפקדה לאיזון" msgstr "הפקדה לאיזון"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "הפקד סכום כסף כדי לאזן את החשבון" msgstr "הפקד סכום כסף כדי לאזן את החשבון"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "הצג את כל העסקאות (לקריאה בלבד)" msgstr "הצג את כל העסקאות (לקריאה בלבד)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "איתור עסקה בודדת (לקריאה בלבד)" msgstr "איתור עסקה בודדת (לקריאה בלבד)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "UUID של העסקה" msgstr "UUID של העסקה"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n" "Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -40,23 +40,23 @@ msgstr ""
msgid "withdraw" msgid "withdraw"
msgstr "" msgstr ""
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "" msgstr ""
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "" msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -40,23 +40,23 @@ msgstr ""
msgid "withdraw" msgid "withdraw"
msgstr "" msgstr ""
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "" msgstr ""
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "" msgstr ""
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "" msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Deposit"
msgid "withdraw" msgid "withdraw"
msgstr "Menarik diri" msgstr "Menarik diri"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Setoran ke saldo" msgstr "Setoran ke saldo"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Menyetor sejumlah uang untuk menyeimbangkan" msgstr "Menyetor sejumlah uang untuk menyeimbangkan"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "Daftar semua transaksi (hanya-baca)" msgstr "Daftar semua transaksi (hanya-baca)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Mengambil satu transaksi (hanya-baca)" msgstr "Mengambil satu transaksi (hanya-baca)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "UUID Transaksi" msgstr "UUID Transaksi"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2025.4\n" "Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n" "POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n" "Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n" "Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Deposito"
msgid "withdraw" msgid "withdraw"
msgstr "Ritiro" msgstr "Ritiro"
#: engine/payments/docs/drf/views.py:10 #: engine/payments/docs/drf/views.py:13
msgid "deposit to balance" msgid "deposit to balance"
msgstr "Deposito a saldo" msgstr "Deposito a saldo"
#: engine/payments/docs/drf/views.py:11 #: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance" msgid "deposit some money to balance"
msgstr "Depositare del denaro per bilanciare" msgstr "Depositare del denaro per bilanciare"
#: engine/payments/docs/drf/viewsets.py:11 #: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)" msgid "list all transactions (read-only)"
msgstr "Elenco di tutte le transazioni (solo lettura)" msgstr "Elenco di tutte le transazioni (solo lettura)"
#: engine/payments/docs/drf/viewsets.py:15 #: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)" msgid "retrieve a single transaction (read-only)"
msgstr "Recuperare una singola transazione (solo lettura)" msgstr "Recuperare una singola transazione (solo lettura)"
#: engine/payments/docs/drf/viewsets.py:20 #: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID" msgid "Transaction UUID"
msgstr "UUID della transazione" msgstr "UUID della transazione"

Some files were not shown because too many files have changed in this diff Show more