From c92b9bf5631c836e173fdbcfef47151587b55af2 Mon Sep 17 00:00:00 2001 From: Grigory Boyko Date: Mon, 1 Aug 2022 15:17:21 +0700 Subject: [PATCH] feat: Add CartEditable block --- .../Sources/Cart protocols/CartEditable.swift | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 TIEcommerce/Sources/Cart protocols/CartEditable.swift diff --git a/TIEcommerce/Sources/Cart protocols/CartEditable.swift b/TIEcommerce/Sources/Cart protocols/CartEditable.swift new file mode 100644 index 00000000..c5bb1e99 --- /dev/null +++ b/TIEcommerce/Sources/Cart protocols/CartEditable.swift @@ -0,0 +1,33 @@ +import Foundation + +///Изменение количества единиц товара +/// +///Интерфейс для модели товара с опциональным полем доступного количества товара и применение изменений в интерфейсе модели локальной корзины +protocol ProductCountInCartHolder { + // у тебя массив продуктов с количеством лежит локально, и вот ты его заменяешь на то, что пришло + var countInCart: Int? { get set } +} + +protocol ProductCountInCartDelegate: AnyObject { + func countInCartDidChanged(count: Int, productID: Int) +} + +///Выбор варианта товара +/// +///Интерфейс для модели товара с массивом доступных вариантов и применение изменений в интерфейсе модели локальной корзины. +///Вариант является интерфейсом товара, но конкретная модель может быть другой. +///(Под вариантом подразумевается разная фасовка, цвет, размер и пр. характеристики товара.) +protocol ChoosableProductVariant { + ///Варианты товара (фасовка, цвет, размер, и т.п.) + var variants: [CartProduct] { get } + +} + +///Возможность вернуть товар в корзину +/// +///В интерфейсе локальной корзины должны присуствовать товары, которые были удалены из корзины, но которые можно вернуть. +///При отправке корзины на оформление заказа эти товары не учитываются. +protocol RemovableProductCart { + var removedProducts: [CartProduct] { get set } +} +