from apps.projects.models import ProjectRate, ProjectUserRate def create_project_rate(project, hourly_rate, currency="USD"): return ProjectRate.objects.create( project=project, hourly_rate=hourly_rate, 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_id, hourly_rate, currency="USD"): return ProjectUserRate.objects.create( project=project, user_id=user_id, hourly_rate=hourly_rate, 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