feat(projects): add projects app's basic structure and endpoints
This commit is contained in:
42
apps/projects/services/rates.py
Normal file
42
apps/projects/services/rates.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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
|
||||
Reference in New Issue
Block a user