# from mongoengine import Document, ReferenceField, IntField,StringField
# from datetime import datetime

# class UserReferral(Document):
#     user_id = ReferenceField('User')
#     referred_by_user_id = ReferenceField('User')
#     points = IntField()
#     created_at = StringField(default=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
#     meta = {'collection': 'user_referrals'}

from mongoengine import Document, ReferenceField, IntField, DateTimeField
from datetime import datetime

class UserReferral(Document):
    user_id = ReferenceField('User', required=True)               # Refers to the user who was referred
    referred_by_user_id = ReferenceField('User', required=True)   # Refers to the one who made the referral
    points = IntField(null=True)                                  # Can be null
    created_at = DateTimeField(default=datetime.utcnow)

    meta = {'collection': 'user_referrals'}

    def to_json(self):
        return {
            'id': str(self.id),
            'user_id': str(self.user_id.id) if self.user_id else None,
            'referred_by_user_id': str(self.referred_by_user_id.id) if self.referred_by_user_id else None,
            'points': self.points,
            'created_date': self.created_date.strftime('%Y-%m-%d %H:%M:%S') if self.created_date else None

        }
