meraproject/module/vcard/buy/structure/eVcardBuyAccess.php
keboss-m 5c21d25d45 Initial commit: Merakomis portal, Docker stack and user-reader API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 11:04:05 +03:00

186 lines
12 KiB
PHP

<?php
namespace vcard\buy\structure;
use vcard\block\structure\eVcardBlockType;
use vcard\card\structure\eBackgroundClass;
class eVcardBuyAccess {
CONST NONE = 0; // Права доступа не требуются
CONST GRAD_SANGUINE = 1;
CONST GRAD_PURPLE_LAKE = 2;
CONST GRAD_ULTRAMARINE = 3;
CONST GRAD_PINK_SUGAR = 4;
CONST GRAD_LEMON_DRIZZLE = 5;
CONST GRAD_VICTORIA_PURPLE = 6;
CONST GRAD_SPRING_GREENS = 7;
CONST GRAD_MYSTIC_MAUVE = 8;
CONST GRAD_REFLEX_SILVER = 9;
CONST GRAD_NEON_GLOW = 10;
CONST GRAD_BERRY_SMOOTHIE = 11;
CONST GRAD_NEW_LEAF = 12;
CONST GRAD_COTTON_CANDY = 13;
CONST GRAD_PIXIE_DUST = 14;
CONST GRAD_FIZZY_PEACH = 15;
CONST GRAD_SWEET_DREAM = 16;
CONST GRAD_FIREBRICK = 17;
CONST GRAD_WROUGHT_IRON = 18;
CONST GRAD_DEEP_SEA = 19;
CONST GRAD_COASTAL_BREEZE = 20;
CONST GRAD_EVENING_DELIGHT = 21;
CONST GRAD_ROYAL = 36;
CONST IMG_4 = 22;
CONST IMG_5 = 23;
CONST IMG_6 = 28;
CONST ADD_PROFILE_1 = 24;
CONST ADD_PROFILE_2 = 25;
CONST ADD_PROFILE_5 = 26;
CONST EXPIRE_1 = 31;
CONST EXPIRE_3 = 32;
CONST EXPIRE_6 = 33;
CONST EXPIRE_12 = 34;
CONST BLOCK_SHOP = 27;
CONST BLOCK_SITE_CUSTOM = 29;
CONST BLOCK_TEXT = 30;
CONST FUNCTION_BG = 35;
CONST FUNCTION_LOGO_FOOTER = 37;
CONST FUNCTION_WIDGET_ICON = 38;
CONST EXPIRE = 39; // Товар доступен только по подписке
CONST BALANCE = 40; // Пополнение баланса
const ADD_CARD_MONTH_1 = 41;
const ADD_CARD_MONTH_3 = 42;
const ADD_CARD_MONTH_6 = 43;
const ADD_CARD_MONTH_12 = 44;
static $arr;
static function getArray(){
if (self::$arr) return self::$arr;
return self::$arr = [
self::NONE => ['n'=>'NONE', 'rule'=>self::NONE , ],
self::GRAD_SANGUINE => ['n'=>'GRAD_SANGUINE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::SANGUINE, ],
self::GRAD_PURPLE_LAKE => ['n'=>'GRAD_PURPLE_LAKE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::PURPLE_LAKE, ],
self::GRAD_ULTRAMARINE => ['n'=>'GRAD_ULTRAMARINE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::ULTRAMARINE, ],
self::GRAD_PINK_SUGAR => ['n'=>'GRAD_PINK_SUGAR', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::PINK_SUGAR, ],
self::GRAD_LEMON_DRIZZLE => ['n'=>'GRAD_LEMON_DRIZZLE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::LEMON_DRIZZLE, ],
self::GRAD_VICTORIA_PURPLE => ['n'=>'GRAD_VICTORIA_PURPLE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::VICTORIA_PURPLE, ],
self::GRAD_SPRING_GREENS => ['n'=>'GRAD_SPRING_GREENS', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::SPRING_GREENS, ],
self::GRAD_MYSTIC_MAUVE => ['n'=>'GRAD_MYSTIC_MAUVE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::MYSTIC_MAUVE, ],
self::GRAD_REFLEX_SILVER => ['n'=>'GRAD_REFLEX_SILVER', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::REFLEX_SILVER, ],
self::GRAD_NEON_GLOW => ['n'=>'GRAD_NEON_GLOW', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::NEON_GLOW, ],
self::GRAD_BERRY_SMOOTHIE => ['n'=>'GRAD_BERRY_SMOOTHIE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::BERRY_SMOOTHIE, ],
self::GRAD_NEW_LEAF => ['n'=>'GRAD_NEW_LEAF', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::NEW_LEAF, ],
self::GRAD_COTTON_CANDY => ['n'=>'GRAD_COTTON_CANDY', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::COTTON_CANDY, ],
self::GRAD_PIXIE_DUST => ['n'=>'GRAD_PIXIE_DUST', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::PIXIE_DUST, ],
self::GRAD_FIZZY_PEACH => ['n'=>'GRAD_FIZZY_PEACH', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::FIZZY_PEACH, ],
self::GRAD_SWEET_DREAM => ['n'=>'GRAD_SWEET_DREAM', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::SWEET_DREAM, ],
self::GRAD_FIREBRICK => ['n'=>'GRAD_FIREBRICK', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::FIREBRICK, ],
self::GRAD_WROUGHT_IRON => ['n'=>'GRAD_WROUGHT_IRON', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::WROUGHT_IRON, ],
self::GRAD_DEEP_SEA => ['n'=>'GRAD_DEEP_SEA', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::DEEP_SEA, ],
self::GRAD_COASTAL_BREEZE => ['n'=>'GRAD_COASTAL_BREEZE', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::COASTAL_BREEZE, ],
self::GRAD_EVENING_DELIGHT => ['n'=>'GRAD_EVENING_DELIGHT', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::EVENING_DELIGHT, ],
self::GRAD_ROYAL => ['n'=>'GRAD_ROYAL', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::ROYAL, ],
self::IMG_4 => ['n'=>'IMG_4', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::SPLASH_4, ],
self::IMG_5 => ['n'=>'IMG_5', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::SPLASH_5, ],
self::IMG_6 => ['n'=>'IMG_6', 'rule'=>self::EXPIRE ,'css_market'=>eBackgroundClass::SPLASH_6, ],
self::ADD_PROFILE_1 => ['n'=>'ADD_PROFILE_1', 'rule'=>self::NONE ],
self::ADD_PROFILE_2 => ['n'=>'ADD_PROFILE_2', 'rule'=>self::NONE ],
self::ADD_PROFILE_5 => ['n'=>'ADD_PROFILE_5', 'rule'=>self::NONE ],
self::EXPIRE_1 => ['n'=>'EXPIRE_1', 'rule'=>self::NONE ],
self::EXPIRE_3 => ['n'=>'EXPIRE_3', 'rule'=>self::NONE ],
self::EXPIRE_6 => ['n'=>'EXPIRE_6', 'rule'=>self::NONE ],
self::EXPIRE_12 => ['n'=>'EXPIRE_12', 'rule'=>self::NONE ],
self::BLOCK_SHOP => ['n'=>'BLOCK_SHOP', 'rule'=>self::BLOCK_SHOP ],
self::BLOCK_SITE_CUSTOM => ['n'=>'BLOCK_SITE_CUSTOM', 'rule'=>self::BLOCK_SITE_CUSTOM ],
self::BLOCK_TEXT => ['n'=>'BLOCK_TEXT', 'rule'=>self::BLOCK_TEXT ],
self::FUNCTION_BG => ['n'=>'FUNCTION_BG', 'rule'=>self::FUNCTION_BG ],
self::FUNCTION_LOGO_FOOTER => ['n'=>'FUNCTION_LOGO_FOOTER', 'rule'=>self::FUNCTION_LOGO_FOOTER ],
self::FUNCTION_WIDGET_ICON => ['n'=>'FUNCTION_WIDGET_ICON', 'rule'=>self::FUNCTION_WIDGET_ICON ],
self::BALANCE => ['n'=>'BALANCE', 'rule'=>self::NONE ],
self::ADD_CARD_MONTH_1 => ['n'=>'ADD_CARD_MONTH_1', 'rule'=>self::NONE ],
self::ADD_CARD_MONTH_3 => ['n'=>'ADD_CARD_MONTH_3', 'rule'=>self::NONE ],
self::ADD_CARD_MONTH_6 => ['n'=>'ADD_CARD_MONTH_6', 'rule'=>self::NONE ],
self::ADD_CARD_MONTH_12 => ['n'=>'ADD_CARD_MONTH_12', 'rule'=>self::NONE ],
];
}
static function getRule($product_type){
return self::getArray()[$product_type]['rule'];
}
static function getNameList(){
$res = [];
$a = self::getArray();
foreach ($a as $k=>$v){
$res[] = ['id'=>$k,'title'=>$v['n']];
}
return $res;
}
static function getBlockAccessRule($type){
$a = [
eVcardBlockType::SHOP => self::BLOCK_SHOP,
eVcardBlockType::SITE_CUSTOM => self::BLOCK_SITE_CUSTOM,
eVcardBlockType::TEXT => self::BLOCK_TEXT,
];
return (isset($a[$type])) ? $a[$type] : self::NONE;
}
static function unsplashProduct($i){
$a = [
eBackgroundClass::SPLASH_4 => self::IMG_4,
eBackgroundClass::SPLASH_5 => self::IMG_5,
eBackgroundClass::SPLASH_6 => self::IMG_6,
];
return (isset($a[$i]))?$a[$i]:self::NONE;
}
static function getBackgroundAccessRule($i){
$a = [
eBackgroundClass::BG_WHITE => self::NONE,
eBackgroundClass::BG_LIGHT_GRAY => self::NONE,
eBackgroundClass::PAPAYA => self::NONE,
eBackgroundClass::OCEAN_BLUE => self::NONE,
eBackgroundClass::LIME => self::NONE,
eBackgroundClass::SANGUINE => self::EXPIRE, // GRAD_SANGUINE,
eBackgroundClass::PURPLE_LAKE => self::EXPIRE, // GRAD_PURPLE_LAKE,
eBackgroundClass::ULTRAMARINE => self::EXPIRE, // GRAD_ULTRAMARINE,
eBackgroundClass::PINK_SUGAR => self::EXPIRE, // GRAD_PINK_SUGAR,
eBackgroundClass::LEMON_DRIZZLE => self::EXPIRE, // GRAD_LEMON_DRIZZLE,
eBackgroundClass::VICTORIA_PURPLE => self::EXPIRE, // GRAD_VICTORIA_PURPLE,
eBackgroundClass::SPRING_GREENS => self::EXPIRE, // GRAD_SPRING_GREENS,
eBackgroundClass::MYSTIC_MAUVE => self::EXPIRE, // GRAD_MYSTIC_MAUVE,
eBackgroundClass::REFLEX_SILVER => self::EXPIRE, // GRAD_REFLEX_SILVER,
eBackgroundClass::NEON_GLOW => self::EXPIRE, // GRAD_NEON_GLOW,
eBackgroundClass::BERRY_SMOOTHIE => self::EXPIRE, // GRAD_BERRY_SMOOTHIE,
eBackgroundClass::NEW_LEAF => self::EXPIRE, // GRAD_NEW_LEAF,
eBackgroundClass::COTTON_CANDY => self::EXPIRE, // GRAD_COTTON_CANDY,
eBackgroundClass::PIXIE_DUST => self::EXPIRE, // GRAD_PIXIE_DUST,
eBackgroundClass::FIZZY_PEACH => self::EXPIRE, // GRAD_FIZZY_PEACH,
eBackgroundClass::SWEET_DREAM => self::EXPIRE, // GRAD_SWEET_DREAM,
eBackgroundClass::FIREBRICK => self::EXPIRE, // GRAD_FIREBRICK,
eBackgroundClass::WROUGHT_IRON => self::EXPIRE, // GRAD_WROUGHT_IRON,
eBackgroundClass::DEEP_SEA => self::EXPIRE, // GRAD_DEEP_SEA,
eBackgroundClass::COASTAL_BREEZE => self::EXPIRE, // GRAD_COASTAL_BREEZE,
eBackgroundClass::EVENING_DELIGHT => self::EXPIRE, // GRAD_EVENING_DELIGHT,
eBackgroundClass::ROYAL => self::EXPIRE, // GRAD_ROYAL,
eBackgroundClass::SPLASH_1 => self::NONE,
eBackgroundClass::SPLASH_2 => self::NONE,
eBackgroundClass::SPLASH_3 => self::NONE,
eBackgroundClass::SPLASH_4 => self::EXPIRE,
eBackgroundClass::SPLASH_5 => self::EXPIRE,
eBackgroundClass::SPLASH_6 => self::EXPIRE,
];
return (isset($a[$i]))?$a[$i]:self::NONE;
}
}