from apps.project.models import Project as ProjectModel, ProjectImage as ProjectImageModel from apps.cuser.models import CUser as CUserModel from rest_framework.validators import ValidationError from utils.services.sms import DefaultSmsProvider from utils.services.sms_task import task_send_sms def create_project(cuser: CUserModel, city: int, address: str, factor_price: int, project_images: list, tabaghat: int, zirbana: int, vahed:int): try: project = ProjectModel.objects.create( cuser=cuser, city_id=city, tabaghat=tabaghat, zirbana=zirbana, vahed=vahed, address=address, factor_price=factor_price ) for image in project_images: ProjectImageModel.objects.create(project=project, image=image) message = f'پروژه شما با موفقیت در باشگاه مجریان لوله گستر گلپایگان ثبت شد، لطفا اطلاعات مربوط به فروشنده را تکمیل کنید.' task_send_sms.delay(message=message, mobile=str(cuser.mobile)) return project except Exception as e: raise ValidationError({'error': f'error on create project {str(e)}'}) def update_seller_project(project_id: int, **kwargs): try: project = ProjectModel.objects.filter(id=project_id).update(status='waiting', **kwargs) project_obj = ProjectModel.objects.get(id=project_id) return project_obj except Exception as e: raise ValidationError({'error': f'error on update project {str(e)}'}) def send_sms_to_seller(seller_mobile: int, message: str): sms = DefaultSmsProvider() sms.send_sms(str(seller_mobile), message) def update_seller_va_send_message(project_id: int, **kwargs): project = update_seller_project(project_id, **kwargs) message = f'پس از برسی و تایید پروژه توسط کارشناسان شرکت امتیاز به پروفایل شما اضافه خواهد شد' task_send_sms.delay(message=message, mobile=str(project.cuser.mobile)) #send_sms_to_seller(9384999655, message) return project