WIP
This commit is contained in:
98
backend/src/app/DTO/Settings/AppDTO.php
Executable file
98
backend/src/app/DTO/Settings/AppDTO.php
Executable file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class AppDTO
|
||||
{
|
||||
private bool $appEnabled;
|
||||
private string $appName;
|
||||
private ?string $appIcon;
|
||||
private string $themeLight;
|
||||
private string $themeDark;
|
||||
private bool $appDebug;
|
||||
private int $languageId;
|
||||
private string $shopBaseUrl;
|
||||
private bool $hapticEnabled;
|
||||
|
||||
public function __construct(
|
||||
bool $appEnabled,
|
||||
string $appName,
|
||||
?string $appIcon,
|
||||
string $themeLight,
|
||||
string $themeDark,
|
||||
bool $appDebug,
|
||||
int $languageId,
|
||||
string $shopBaseUrl,
|
||||
bool $hapticEnabled = true
|
||||
) {
|
||||
$this->appEnabled = $appEnabled;
|
||||
$this->appName = $appName;
|
||||
$this->appIcon = $appIcon;
|
||||
$this->themeLight = $themeLight;
|
||||
$this->themeDark = $themeDark;
|
||||
$this->appDebug = $appDebug;
|
||||
$this->languageId = $languageId;
|
||||
$this->shopBaseUrl = $shopBaseUrl;
|
||||
$this->hapticEnabled = $hapticEnabled;
|
||||
}
|
||||
|
||||
public function isAppEnabled(): bool
|
||||
{
|
||||
return $this->appEnabled;
|
||||
}
|
||||
|
||||
public function getAppName(): string
|
||||
{
|
||||
return $this->appName;
|
||||
}
|
||||
|
||||
public function getAppIcon(): ?string
|
||||
{
|
||||
return $this->appIcon;
|
||||
}
|
||||
|
||||
public function getThemeLight(): string
|
||||
{
|
||||
return $this->themeLight;
|
||||
}
|
||||
|
||||
public function getThemeDark(): string
|
||||
{
|
||||
return $this->themeDark;
|
||||
}
|
||||
|
||||
public function isAppDebug(): bool
|
||||
{
|
||||
return $this->appDebug;
|
||||
}
|
||||
|
||||
public function getLanguageId(): int
|
||||
{
|
||||
return $this->languageId;
|
||||
}
|
||||
|
||||
public function getShopBaseUrl(): string
|
||||
{
|
||||
return $this->shopBaseUrl;
|
||||
}
|
||||
|
||||
public function isHapticEnabled(): bool
|
||||
{
|
||||
return $this->hapticEnabled;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'app_enabled' => $this->isAppEnabled(),
|
||||
'app_name' => $this->getAppName(),
|
||||
'app_icon' => $this->getAppIcon(),
|
||||
'theme_light' => $this->getThemeLight(),
|
||||
'theme_dark' => $this->getThemeDark(),
|
||||
'app_debug' => $this->isAppDebug(),
|
||||
'language_id' => $this->getLanguageId(),
|
||||
'shop_base_url' => $this->getShopBaseUrl(),
|
||||
'haptic_enabled' => $this->isHapticEnabled(),
|
||||
];
|
||||
}
|
||||
}
|
||||
89
backend/src/app/DTO/Settings/ConfigDTO.php
Executable file
89
backend/src/app/DTO/Settings/ConfigDTO.php
Executable file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class ConfigDTO
|
||||
{
|
||||
private AppDTO $app;
|
||||
private TelegramDTO $telegram;
|
||||
private MetricsDTO $metrics;
|
||||
private StoreDTO $store;
|
||||
private OrdersDTO $orders;
|
||||
private TextsDTO $texts;
|
||||
private DatabaseDTO $database;
|
||||
private LogsDTO $logs;
|
||||
|
||||
public function __construct(
|
||||
AppDTO $app,
|
||||
TelegramDTO $telegram,
|
||||
MetricsDTO $metrics,
|
||||
StoreDTO $store,
|
||||
OrdersDTO $orders,
|
||||
TextsDTO $texts,
|
||||
DatabaseDTO $database,
|
||||
LogsDTO $logs
|
||||
) {
|
||||
$this->app = $app;
|
||||
$this->telegram = $telegram;
|
||||
$this->metrics = $metrics;
|
||||
$this->store = $store;
|
||||
$this->orders = $orders;
|
||||
$this->texts = $texts;
|
||||
$this->database = $database;
|
||||
$this->logs = $logs;
|
||||
}
|
||||
|
||||
public function getApp(): AppDTO
|
||||
{
|
||||
return $this->app;
|
||||
}
|
||||
|
||||
public function getTelegram(): TelegramDTO
|
||||
{
|
||||
return $this->telegram;
|
||||
}
|
||||
|
||||
public function getMetrics(): MetricsDTO
|
||||
{
|
||||
return $this->metrics;
|
||||
}
|
||||
|
||||
public function getStore(): StoreDTO
|
||||
{
|
||||
return $this->store;
|
||||
}
|
||||
|
||||
public function getOrders(): OrdersDTO
|
||||
{
|
||||
return $this->orders;
|
||||
}
|
||||
|
||||
public function getTexts(): TextsDTO
|
||||
{
|
||||
return $this->texts;
|
||||
}
|
||||
|
||||
public function getDatabase(): DatabaseDTO
|
||||
{
|
||||
return $this->database;
|
||||
}
|
||||
|
||||
public function getLogs(): LogsDTO
|
||||
{
|
||||
return $this->logs;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'app' => $this->app->toArray(),
|
||||
'database' => $this->database->toArray(),
|
||||
'logs' => $this->logs->toArray(),
|
||||
'metrics' => $this->metrics->toArray(),
|
||||
'orders' => $this->orders->toArray(),
|
||||
'store' => $this->store->toArray(),
|
||||
'telegram' => $this->telegram->toArray(),
|
||||
'texts' => $this->texts->toArray(),
|
||||
];
|
||||
}
|
||||
}
|
||||
71
backend/src/app/DTO/Settings/DatabaseDTO.php
Executable file
71
backend/src/app/DTO/Settings/DatabaseDTO.php
Executable file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class DatabaseDTO
|
||||
{
|
||||
private string $host;
|
||||
private string $database;
|
||||
private string $username;
|
||||
private string $password;
|
||||
private string $prefix;
|
||||
private int $port;
|
||||
|
||||
public function __construct(
|
||||
string $host,
|
||||
string $database,
|
||||
string $username,
|
||||
string $password,
|
||||
string $prefix,
|
||||
int $port
|
||||
) {
|
||||
$this->host = $host;
|
||||
$this->database = $database;
|
||||
$this->username = $username;
|
||||
$this->password = $password;
|
||||
$this->prefix = $prefix;
|
||||
$this->port = $port;
|
||||
}
|
||||
|
||||
public function getHost(): string
|
||||
{
|
||||
return $this->host;
|
||||
}
|
||||
|
||||
public function getDatabase(): string
|
||||
{
|
||||
return $this->database;
|
||||
}
|
||||
|
||||
public function getUsername(): string
|
||||
{
|
||||
return $this->username;
|
||||
}
|
||||
|
||||
public function getPassword(): string
|
||||
{
|
||||
return $this->password;
|
||||
}
|
||||
|
||||
public function getPrefix(): string
|
||||
{
|
||||
return $this->prefix;
|
||||
}
|
||||
|
||||
public function getPort(): int
|
||||
{
|
||||
return $this->port;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'host' => $this->host,
|
||||
'database' => $this->database,
|
||||
'username' => $this->username,
|
||||
'password' => $this->password,
|
||||
'prefix' => $this->prefix,
|
||||
'port' => $this->port,
|
||||
];
|
||||
}
|
||||
}
|
||||
25
backend/src/app/DTO/Settings/LogsDTO.php
Executable file
25
backend/src/app/DTO/Settings/LogsDTO.php
Executable file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class LogsDTO
|
||||
{
|
||||
private string $path;
|
||||
|
||||
public function __construct(string $path)
|
||||
{
|
||||
$this->path = $path;
|
||||
}
|
||||
|
||||
public function getPath(): string
|
||||
{
|
||||
return $this->path;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'path' => $this->path,
|
||||
];
|
||||
}
|
||||
}
|
||||
35
backend/src/app/DTO/Settings/MetricsDTO.php
Executable file
35
backend/src/app/DTO/Settings/MetricsDTO.php
Executable file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class MetricsDTO
|
||||
{
|
||||
private bool $yandexMetrikaEnabled;
|
||||
private string $yandexMetrikaCounter;
|
||||
|
||||
public function __construct(
|
||||
bool $yandexMetrikaEnabled,
|
||||
string $yandexMetrikaCounter
|
||||
) {
|
||||
$this->yandexMetrikaEnabled = $yandexMetrikaEnabled;
|
||||
$this->yandexMetrikaCounter = $yandexMetrikaCounter;
|
||||
}
|
||||
|
||||
public function isYandexMetrikaEnabled(): bool
|
||||
{
|
||||
return $this->yandexMetrikaEnabled;
|
||||
}
|
||||
|
||||
public function getYandexMetrikaCounter(): string
|
||||
{
|
||||
return $this->yandexMetrikaCounter;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'yandex_metrika_enabled' => $this->yandexMetrikaEnabled,
|
||||
'yandex_metrika_counter' => $this->yandexMetrikaCounter,
|
||||
];
|
||||
}
|
||||
}
|
||||
33
backend/src/app/DTO/Settings/OrdersDTO.php
Executable file
33
backend/src/app/DTO/Settings/OrdersDTO.php
Executable file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class OrdersDTO
|
||||
{
|
||||
private int $orderDefaultStatusId;
|
||||
private int $ocCustomerGroupId;
|
||||
|
||||
public function __construct(int $orderDefaultStatusId, int $ocCustomerGroupId)
|
||||
{
|
||||
$this->orderDefaultStatusId = $orderDefaultStatusId;
|
||||
$this->ocCustomerGroupId = $ocCustomerGroupId;
|
||||
}
|
||||
|
||||
public function getOrderDefaultStatusId(): int
|
||||
{
|
||||
return $this->orderDefaultStatusId;
|
||||
}
|
||||
|
||||
public function getOcCustomerGroupId(): int
|
||||
{
|
||||
return $this->ocCustomerGroupId;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'order_default_status_id' => $this->orderDefaultStatusId,
|
||||
'oc_customer_group_id' => $this->ocCustomerGroupId,
|
||||
];
|
||||
}
|
||||
}
|
||||
90
backend/src/app/DTO/Settings/StoreDTO.php
Executable file
90
backend/src/app/DTO/Settings/StoreDTO.php
Executable file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class StoreDTO
|
||||
{
|
||||
private bool $featureCoupons;
|
||||
private bool $featureVouchers;
|
||||
private bool $showCategoryProductsButton;
|
||||
private string $productInteractionMode;
|
||||
private ?string $managerUsername;
|
||||
private string $ocDefaultCurrency;
|
||||
private bool $ocConfigTax;
|
||||
private int $ocStoreId;
|
||||
|
||||
public function __construct(
|
||||
bool $featureCoupons,
|
||||
bool $featureVouchers,
|
||||
bool $showCategoryProductsButton,
|
||||
string $productInteractionMode,
|
||||
?string $managerUsername,
|
||||
string $ocDefaultCurrency,
|
||||
bool $ocConfigTax,
|
||||
int $ocStoreId
|
||||
) {
|
||||
$this->featureCoupons = $featureCoupons;
|
||||
$this->featureVouchers = $featureVouchers;
|
||||
$this->showCategoryProductsButton = $showCategoryProductsButton;
|
||||
$this->productInteractionMode = $productInteractionMode;
|
||||
$this->managerUsername = $managerUsername;
|
||||
$this->ocDefaultCurrency = $ocDefaultCurrency;
|
||||
$this->ocConfigTax = $ocConfigTax;
|
||||
$this->ocStoreId = $ocStoreId;
|
||||
}
|
||||
|
||||
public function isFeatureCoupons(): bool
|
||||
{
|
||||
return $this->featureCoupons;
|
||||
}
|
||||
|
||||
public function isFeatureVouchers(): bool
|
||||
{
|
||||
return $this->featureVouchers;
|
||||
}
|
||||
|
||||
public function isShowCategoryProductsButton(): bool
|
||||
{
|
||||
return $this->showCategoryProductsButton;
|
||||
}
|
||||
|
||||
public function getProductInteractionMode(): string
|
||||
{
|
||||
return $this->productInteractionMode;
|
||||
}
|
||||
|
||||
public function getManagerUsername(): ?string
|
||||
{
|
||||
return $this->managerUsername;
|
||||
}
|
||||
|
||||
public function getOcDefaultCurrency(): string
|
||||
{
|
||||
return $this->ocDefaultCurrency;
|
||||
}
|
||||
|
||||
public function isOcConfigTax(): bool
|
||||
{
|
||||
return $this->ocConfigTax;
|
||||
}
|
||||
|
||||
public function getOcStoreId(): int
|
||||
{
|
||||
return $this->ocStoreId;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
// enable_store больше не сериализуется, так как заменен на product_interaction_mode
|
||||
'feature_coupons' => $this->featureCoupons,
|
||||
'feature_vouchers' => $this->featureVouchers,
|
||||
'show_category_products_button' => $this->showCategoryProductsButton,
|
||||
'product_interaction_mode' => $this->productInteractionMode,
|
||||
'manager_username' => $this->managerUsername,
|
||||
'oc_default_currency' => $this->ocDefaultCurrency,
|
||||
'oc_config_tax' => $this->ocConfigTax,
|
||||
'oc_store_id' => $this->ocStoreId,
|
||||
];
|
||||
}
|
||||
}
|
||||
62
backend/src/app/DTO/Settings/TelegramDTO.php
Executable file
62
backend/src/app/DTO/Settings/TelegramDTO.php
Executable file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class TelegramDTO
|
||||
{
|
||||
private string $botToken;
|
||||
private ?int $chatId;
|
||||
private string $ownerNotificationTemplate;
|
||||
private string $customerNotificationTemplate;
|
||||
private string $miniAppUrl;
|
||||
|
||||
public function __construct(
|
||||
string $botToken,
|
||||
?int $chatId,
|
||||
string $ownerNotificationTemplate,
|
||||
string $customerNotificationTemplate,
|
||||
string $miniAppUrl
|
||||
) {
|
||||
$this->botToken = $botToken;
|
||||
$this->chatId = $chatId;
|
||||
$this->ownerNotificationTemplate = $ownerNotificationTemplate;
|
||||
$this->customerNotificationTemplate = $customerNotificationTemplate;
|
||||
$this->miniAppUrl = $miniAppUrl;
|
||||
}
|
||||
|
||||
public function getBotToken(): string
|
||||
{
|
||||
return $this->botToken;
|
||||
}
|
||||
|
||||
public function getChatId(): ?int
|
||||
{
|
||||
return $this->chatId;
|
||||
}
|
||||
|
||||
public function getOwnerNotificationTemplate(): string
|
||||
{
|
||||
return $this->ownerNotificationTemplate;
|
||||
}
|
||||
|
||||
public function getCustomerNotificationTemplate(): string
|
||||
{
|
||||
return $this->customerNotificationTemplate;
|
||||
}
|
||||
|
||||
public function getMiniAppUrl(): string
|
||||
{
|
||||
return $this->miniAppUrl;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'bot_token' => $this->botToken,
|
||||
'chat_id' => $this->chatId,
|
||||
'owner_notification_template' => $this->ownerNotificationTemplate,
|
||||
'customer_notification_template' => $this->customerNotificationTemplate,
|
||||
'mini_app_url' => $this->miniAppUrl,
|
||||
];
|
||||
}
|
||||
}
|
||||
53
backend/src/app/DTO/Settings/TextsDTO.php
Executable file
53
backend/src/app/DTO/Settings/TextsDTO.php
Executable file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace App\DTO\Settings;
|
||||
|
||||
final class TextsDTO
|
||||
{
|
||||
private string $textNoMoreProducts;
|
||||
private string $textEmptyCart;
|
||||
private string $textOrderCreatedSuccess;
|
||||
private string $textManagerButton;
|
||||
|
||||
public function __construct(
|
||||
string $textNoMoreProducts,
|
||||
string $textEmptyCart,
|
||||
string $textOrderCreatedSuccess,
|
||||
string $textManagerButton
|
||||
) {
|
||||
$this->textNoMoreProducts = $textNoMoreProducts;
|
||||
$this->textEmptyCart = $textEmptyCart;
|
||||
$this->textOrderCreatedSuccess = $textOrderCreatedSuccess;
|
||||
$this->textManagerButton = $textManagerButton;
|
||||
}
|
||||
|
||||
public function getTextNoMoreProducts(): string
|
||||
{
|
||||
return $this->textNoMoreProducts;
|
||||
}
|
||||
|
||||
public function getTextEmptyCart(): string
|
||||
{
|
||||
return $this->textEmptyCart;
|
||||
}
|
||||
|
||||
public function getTextOrderCreatedSuccess(): string
|
||||
{
|
||||
return $this->textOrderCreatedSuccess;
|
||||
}
|
||||
|
||||
public function getTextManagerButton(): string
|
||||
{
|
||||
return $this->textManagerButton;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return [
|
||||
'text_no_more_products' => $this->textNoMoreProducts,
|
||||
'text_empty_cart' => $this->textEmptyCart,
|
||||
'text_order_created_success' => $this->textOrderCreatedSuccess,
|
||||
'text_manager_button' => $this->textManagerButton,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user