from apps.reminder.models import Reminder as ReminderModel from apps.lead.models import Lead as LeadModel from rest_framework import exceptions from utils.get_user_workspace import get_user_workspace from utils.get_cuser_role import get_cuser_role def create_or_edit_reminder_lead(request, lead_id: int, datetime: str, desc: str = None) -> ReminderModel: try: workspace = get_user_workspace(request) cuser_role = get_cuser_role(request) lead = LeadModel.objects.get(id=lead_id) customer = lead.customer try: reminder = ReminderModel.objects.get(type='LE', lead=lead, customer=customer, sys_ws=workspace, cuser_role=cuser_role) except Exception as exp: reminder = ReminderModel(lead=lead) reminder.type = 'LE' reminder.customer = customer reminder.datetime = datetime reminder.sys_ws = workspace reminder.cuser_role = cuser_role if desc: reminder.desc = desc reminder.save() return reminder except Exception as exp: message = f'Error Creating or Update reminder for lead: {exp}' raise exceptions.ValidationError({'error': message}) def delete_reminder_lead(request, lead_id: int) -> ReminderModel: try: workspace = get_user_workspace(request) cuser_role = get_cuser_role(request) reminder = ReminderModel.objects.get(type='LE', lead_id=lead_id, sys_ws=workspace, cuser_role=cuser_role).delete() return reminder except Exception as exp: message = f'Error Delete reminder for lead: {exp}' raise exceptions.ValidationError({'error': message})