color style

This commit is contained in:
CHIEFSOFT\ameye
2025-10-19 08:39:46 -04:00
parent ee7004236e
commit 2baf7c9a55
7 changed files with 263 additions and 16 deletions
+58 -1
View File
@@ -10,7 +10,7 @@ from app.api.services.base_service import BaseService
from marshmallow import ValidationError
from app.extensions import db
from app.models import MembersProducts, Products, Members, ProductsDetails, ProductsDetails, ProvisionActions, \
MembersProductsSettings, ProductsTemplates, MembersProfile, SubscriptionGenerative
MembersProductsSettings, ProductsTemplates, MembersProfile, SubscriptionGenerative, ProductsColorStyle
from app.api.helpers.response_helper import ResponseHelper
from app.api.schemas.myproduct import MyProductSchema
from app.api.schemas.provision import ProvisionSchema
@@ -124,6 +124,63 @@ class MyProductsService(BaseService):
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def mpproduct_colostyles_data(data):
try:
with db.session.begin():
# logger.info(f"Incoming MyProduct data ==>>>> {data}")
validated_data = MyProductsService.validate_data(data, MyProductSchema())
token = validated_data.get('token')
uid = validated_data.get('uid')
member_data = Members.get_member_by_uid(uid)
member_id = member_data.id
product_id = validated_data.get('product_id')
color_style_data = []
memberSubscription = MembersProducts.get_member_product_by_product_member_id(member_id, product_id)
if memberSubscription:
colorStyles = ProductsColorStyle.get_colorstyle_by_product_id(product_id)
# templates = ProductsTemplates.get_template_by_product_id(product_id)
for t in colorStyles:
color_style_data.append({
'id': t.id,
'template_uid': t.uid,
'color_style_uid': t.uid,
'color_code': t.color_code,
'title': t.name,
'active': t.status,
'added': t.added.isoformat() if t.added else None
})
response_data = {
"product_id": product_id,
"current_template_uid": memberSubscription.product_template if memberSubscription else None,
"custom_template_name": memberSubscription.custom_template if memberSubscription else '',
"templates": color_style_data,
"last_update": datetime.datetime.utcnow(),
}
return ResponseHelper.success(data=response_data)
except ValidationError as err:
logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.unprocessable_entity(result_description="Validation exception")
except ValueError as err:
logger.error(f"{getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.error(result_description=str(err))
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def process_provision(data):
try: