diff --git a/lib/core/app_colors.dart b/lib/core/app_colors.dart new file mode 100644 index 00000000..fda80b7e --- /dev/null +++ b/lib/core/app_colors.dart @@ -0,0 +1,5 @@ +import 'dart:ui'; + +abstract class AppColors { + static const scaffoldBackgroundColor = Color(0xFFF0F2F5); +} diff --git a/lib/core/app_router.dart b/lib/core/app_router.dart index 054e4d34..bd921f0a 100644 --- a/lib/core/app_router.dart +++ b/lib/core/app_router.dart @@ -14,6 +14,7 @@ import 'package:eatvio_app/features/chat/presentation/pages/photo_view_screen.da import 'package:eatvio_app/features/consultant/become_consultant/presentation/pages/become_consultant_screen.dart'; import 'package:eatvio_app/features/consultant/become_consultant/presentation/pages/stepper_become_consultant_screen.dart'; import 'package:eatvio_app/features/consultations/presentation/pages/consultations_screen.dart'; +import 'package:eatvio_app/features/consultations/presentation/pages/info_by_order_screen.dart'; import 'package:eatvio_app/features/create_diet/presentation/create_diet_screen.dart'; import 'package:eatvio_app/features/create_diet/presentation/diet_preview_screen.dart'; import 'package:eatvio_app/features/create_plan/presentation/create_plan_screen.dart'; @@ -384,6 +385,11 @@ class AppRouter { name: ConsultantRatingScreen.name, builder: (context, state) => ConsultantRatingScreen(), ), + GoRoute( + path: InfoByOrderScreen.path, + name: InfoByOrderScreen.name, + builder: (context, state) => InfoByOrderScreen(), + ), ], ); } diff --git a/lib/features/consultations/presentation/pages/info_by_order_screen.dart b/lib/features/consultations/presentation/pages/info_by_order_screen.dart new file mode 100644 index 00000000..ad4e48ca --- /dev/null +++ b/lib/features/consultations/presentation/pages/info_by_order_screen.dart @@ -0,0 +1,26 @@ +import 'package:eatvio_app/core/app_colors.dart'; +import 'package:eatvio_app/features/diets/presentation/widgets/author_card.dart'; +import 'package:eatvio_app/features/feed/models/diets_pagination_model.dart'; +import 'package:eatvio_app/generated/l10n.dart'; +import 'package:flutter/material.dart'; + +class InfoByOrderScreen extends StatelessWidget { + static const name = 'infoByOrderScreen'; + static const path = '/info-by-order-screen'; + + const InfoByOrderScreen({super.key}); + + @override + Widget build(BuildContext context) { + final s = S.of(context); + + return Scaffold( + backgroundColor: AppColors.scaffoldBackgroundColor, + appBar: AppBar( + title: Text(s.infoAboutOrder), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.vertical(bottom: Radius.circular(12))), + ), + body: AuthorCard(author: Author(authorSlug: 'authorSlug', authorName: 'authorName', authorProfileIcon: '', authorIsMe: false), title: 'asdasd'), + ); + } +} diff --git a/lib/features/dev_tools/presentation/dev_tools_screen.dart b/lib/features/dev_tools/presentation/dev_tools_screen.dart index 41b61af1..3b1067f7 100644 --- a/lib/features/dev_tools/presentation/dev_tools_screen.dart +++ b/lib/features/dev_tools/presentation/dev_tools_screen.dart @@ -35,6 +35,7 @@ class _DevToolsScreenContentState extends State { GetChatRoomIdByUserSlug(), GetBlogPostList(), GetRecipes(), + CreateRecipeTask(), GetDiets(), GetPlans(), GetBlogPostComments(), @@ -60,6 +61,9 @@ class _DevToolsScreenContentState extends State { @override Widget build(BuildContext context) { return Scaffold( + appBar: AppBar( + title: Text('Для разработчиков'), + ), body: SingleChildScrollView( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 10), diff --git a/lib/features/dev_tools/test_cases.dart b/lib/features/dev_tools/test_cases.dart index 8c92a104..2c88a0e8 100644 --- a/lib/features/dev_tools/test_cases.dart +++ b/lib/features/dev_tools/test_cases.dart @@ -5,6 +5,9 @@ import 'package:dio/dio.dart'; import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/core/utils/date_time_utils.dart'; import 'package:eatvio_app/features/chat/services/chat_service.dart'; +import 'package:eatvio_app/features/create_recipe/models/recipe_model.dart'; +import 'package:eatvio_app/features/create_recipe/models/step.dart'; +import 'package:eatvio_app/features/create_recipe/reporitories/recipe_repository.dart'; import 'package:eatvio_app/features/diets/services/diet_service.dart'; import 'package:eatvio_app/features/feed/services/feed_service.dart'; import 'package:eatvio_app/features/profile/services/profile_service.dart'; @@ -16,6 +19,33 @@ sealed class TestCases { Future run({required String baseUrl}) async => throw UnimplementedError(); } +class CreateRecipeTask implements TestCases { + @override + String get name => 'api/recipes/create'; + + @override + Future run({required String baseUrl}) async { + try { + final dio = sl(); + final recipeRepository = RecipeRepository(recipeService: CreateRecipeService(dio, baseUrl: baseUrl)); + await recipeRepository.publishRecipe( + RecipeModel( + title: 'Title', + state: 'active', + description: 'desc', + type: 'first_meals', + servings: 10, + energyPerServing: 10, + steps: [Step(description: 'desc')], + ), + ); + } catch (e) { + return false; + } + return true; + } +} + class Test850task implements TestCases { @override String get name => 'task #850'; @@ -50,12 +80,7 @@ class Test850task implements TestCases { await Future.delayed(Duration(seconds: 3)); } try { - await dietsService.startDiet( - id: diet.id, - body: { - 'date': yesterday.format('yyyy-MM-dd'), - }, - ); + await dietsService.startDiet(id: diet.id, body: {'date': yesterday.format('yyyy-MM-dd')}); return false; } catch (e) { @@ -64,12 +89,7 @@ class Test850task implements TestCases { // test start diet with correct date try { - await dietsService.startDiet( - id: diet.id, - body: { - 'date': today.format('yyyy-MM-dd'), - }, - ); + await dietsService.startDiet(id: diet.id, body: {'date': today.format('yyyy-MM-dd')}); } catch (e) { log('unexpected error2: $e'); return false; @@ -87,12 +107,7 @@ class Test850task implements TestCases { // test start diet with correct date try { - await dietsService.startDiet( - id: diet.id, - body: { - 'date': tomorrow.format('yyyy-MM-dd'), - }, - ); + await dietsService.startDiet(id: diet.id, body: {'date': tomorrow.format('yyyy-MM-dd')}); } catch (e) { log('unexpected error4: $e'); return false; @@ -304,9 +319,7 @@ class GetBlogPostComments implements TestCases { final feedService = FeedService(dio, baseUrl: baseUrl); final blogPostsModel = await feedService.getBlogPostList(page: 1, query: null); final blogPosts = blogPostsModel.feedBlogPostList; - await feedService.getBlogPostComments( - id: blogPosts.first.id.toString(), - ); + await feedService.getBlogPostComments(id: blogPosts.first.id.toString()); return true; } catch (e) { return false; @@ -325,10 +338,7 @@ class SendBlogPostComment implements TestCases { final feedService = FeedService(dio, baseUrl: baseUrl); final blogPostsModel = await feedService.getBlogPostList(page: 1, query: null); final blogPosts = blogPostsModel.feedBlogPostList; - await feedService.sendBlogPostComment( - id: blogPosts.first.id.toString(), - body: 'auto test message', - ); + await feedService.sendBlogPostComment(id: blogPosts.first.id.toString(), body: 'auto test message'); return true; } catch (e) { return false; @@ -347,9 +357,7 @@ class GetDietsComments implements TestCases { final feedService = FeedService(dio, baseUrl: baseUrl); final dietsModel = await feedService.getDiets(page: 1, query: null); final diets = dietsModel.data; - await feedService.getDietsComments( - id: diets.first.id.toString(), - ); + await feedService.getDietsComments(id: diets.first.id.toString()); return true; } catch (e) { return false; @@ -368,10 +376,7 @@ class SendDietsComment implements TestCases { final feedService = FeedService(dio, baseUrl: baseUrl); final dietsModel = await feedService.getDiets(page: 1, query: null); final diets = dietsModel.data; - await feedService.sendDietsComment( - id: diets.first.id.toString(), - body: 'auto test message', - ); + await feedService.sendDietsComment(id: diets.first.id.toString(), body: 'auto test message'); return true; } catch (e) { return false; @@ -390,9 +395,7 @@ class GetPlansComments implements TestCases { final feedService = FeedService(dio, baseUrl: baseUrl); final plansModel = await feedService.getPlans(page: 1, query: null); final plans = plansModel.data; - await feedService.getPlansComments( - slug: plans.first.slug, - ); + await feedService.getPlansComments(slug: plans.first.slug); return true; } catch (e) { return false; @@ -411,10 +414,7 @@ class SendPlansComment implements TestCases { final feedService = FeedService(dio, baseUrl: baseUrl); final plansModel = await feedService.getPlans(page: 1, query: null); final plans = plansModel.data; - await feedService.sendPlansComment( - slug: plans.first.slug, - body: 'auto test message', - ); + await feedService.sendPlansComment(slug: plans.first.slug, body: 'auto test message'); return true; } catch (e) { return false; @@ -437,9 +437,7 @@ class GetRecipesComments implements TestCases { final tagsIds = tags.map((e) => e.id).toList(); final recipesModel = await feedService.getRecipes(page: 1, tags: tagsIds, query: null); final recipes = recipesModel.recipesList; - await feedService.getRecipesComments( - id: recipes.first.id.toString(), - ); + await feedService.getRecipesComments(id: recipes.first.id.toString()); return true; } catch (e) { return false; diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart index d69842bc..13dfa95f 100644 --- a/lib/generated/intl/messages_en.dart +++ b/lib/generated/intl/messages_en.dart @@ -289,6 +289,9 @@ class MessageLookup extends MessageLookupByLibrary { "hours": MessageLookupByLibrary.simpleMessage("часов"), "in_progress": MessageLookupByLibrary.simpleMessage("В процессе"), "inactive_diet_state": MessageLookupByLibrary.simpleMessage("Черновик"), + "infoAboutOrder": MessageLookupByLibrary.simpleMessage( + "Информация о заказе", + ), "ingredients": MessageLookupByLibrary.simpleMessage("Ингредиенты"), "initial_measurements": MessageLookupByLibrary.simpleMessage( "Первичные замеры", diff --git a/lib/generated/intl/messages_ru.dart b/lib/generated/intl/messages_ru.dart index 38c52171..914d96c1 100644 --- a/lib/generated/intl/messages_ru.dart +++ b/lib/generated/intl/messages_ru.dart @@ -185,6 +185,9 @@ class MessageLookup extends MessageLookupByLibrary { "hips": MessageLookupByLibrary.simpleMessage("Бедра"), "in_progress": MessageLookupByLibrary.simpleMessage("В процессе"), "inactive_diet_state": MessageLookupByLibrary.simpleMessage("Черновик"), + "infoAboutOrder": MessageLookupByLibrary.simpleMessage( + "Информация о заказе", + ), "initial_measurements": MessageLookupByLibrary.simpleMessage( "Первичные замеры", ), diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index d59e65e8..9bcb57ee 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -2519,6 +2519,16 @@ class S { args: [], ); } + + /// `Информация о заказе` + String get infoAboutOrder { + return Intl.message( + 'Информация о заказе', + name: 'infoAboutOrder', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index c976ed0e..2da9a72d 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -311,6 +311,7 @@ "could_not_update_diet": "Не удалось обновить диету", "could_not_publish_blog_post": "Не удалось опубликовать пост", "could_not_update_blog_post": "Не удалось обновить пост", - "could_not_delete_blog_post": "Не удалось удалить пост" + "could_not_delete_blog_post": "Не удалось удалить пост", + "infoAboutOrder": "Информация о заказе" } diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index 8da843e4..79d06b22 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -98,14 +98,14 @@ "gr": "гр", "milliliter": "мл", "grams": "гр", - "startDiet": "Начать диету", + "startDiet": "Начать диету", "comments": "Комментарии", "comment": "комментарий", "another_form_of_comment": "комментария", "about_diet": "Об этой диете", "days": "дней", "day": "День", - "another_form_of_day": "дня", + "another_form_of_day": "дня", "comments_plural": "комментариев", "meal": "Приём пищи", "diet_author": "Автор диеты", @@ -113,7 +113,7 @@ "expand": "Показать полностью", "copy_link": "Скопировать ссылку", "share": "Поделиться", - "complain": "Пожаловаться", + "complain": "Пожаловаться", "vegan_type": "Вегетарианская", "light_type": "Легкая", "meat_type": "С мясом", @@ -127,7 +127,7 @@ "proteins": "Белки", "fats": "Жиры", "carbohydrates": "Углеводы", - "answer": "Ответить", + "answer": "Ответить", "link_was_copied": "Ссылка успешно скопирована", "choose_start_diet_date": "Выберите дату старты диеты. Она отобразиться у Вас в дневнике", "continue_": "Продолжить", @@ -149,7 +149,7 @@ "active_diet_state": "Активная", "inactive_diet_state": "Черновик", "personal_diet_state": "Персональная", - "meat": "Мясо", + "meat": "Мясо", "vegan": "Веган.", "photo": "Фото", "gallery": "Галерея", @@ -205,10 +205,11 @@ "personal": "Персональные", "edit": "Редактировать", "toOffer": "Предложить", - "removeFromActive": "Снять с публикации", + "removeFromActive": "Снять с публикации", "diet": "Диета", "deleted": "Удалена", "my_plans": "Мои планы", - "from": "от", - "user_data": "Данные пользователя" + "from": "от", + "user_data": "Данные пользователя", + "infoAboutOrder": "Информация о заказе" }