Files
qlockify-backend-deployment/apps/projects/services/rates.py

43 lines
1.4 KiB
Python

from apps.projects.models import ProjectRate, ProjectUserRate
def create_project_rate(project, amount, currency="USD"):
return ProjectRate.objects.create(
project=project,
amount=amount,
currency=currency
)
def update_project_rate(rate_instance, **kwargs):
update_fields = []
for field, value in kwargs.items():
if hasattr(rate_instance, field) and getattr(rate_instance, field) != value:
setattr(rate_instance, field, value)
update_fields.append(field)
if update_fields:
update_fields.append("updated_at")
rate_instance.save(update_fields=update_fields)
return rate_instance
def create_project_user_rate(project, user, amount, currency="USD"):
return ProjectUserRate.objects.create(
project=project,
user=user,
amount=amount,
currency=currency
)
def update_project_user_rate(user_rate_instance, **kwargs):
update_fields = []
for field, value in kwargs.items():
if hasattr(user_rate_instance, field) and getattr(user_rate_instance, field) != value:
setattr(user_rate_instance, field, value)
update_fields.append(field)
if update_fields:
update_fields.append("updated_at")
user_rate_instance.save(update_fields=update_fields)
return user_rate_instance