# from datetime import datetime
# from mongoengine import Document, ReferenceField, DateTimeField

# class CartItem(Document):
#     user_id = ReferenceField('User', required=True)
#     course_id = ReferenceField('Course', required=True)
#     created_date = DateTimeField(default=datetime.utcnow)

#     meta = {
#         'collection': 'cart_items',
#         'indexes': ['user_id', 'course_id', '-created_date']
#     }

#     def to_json(self):
#         return {
#             'id': str(self.id),
#             'user_id': str(self.user_id.id) if self.user_id else None,
#             'course_id': str(self.course_id.id) if self.course_id else None,
#             'created_date': self.created_date.isoformat() if self.created_date else None
#         }

# models/cart_item.py
from mongoengine import Document, ReferenceField, DateTimeField, IntField
from datetime import datetime

class CartItem(Document):
    user_id = ReferenceField('User', required=True)
    course_id = ReferenceField('Course', required=True)
    status = IntField(default=1, choices=[0,1,2])  # 1=active, 0=removed, 2=purchased
    created_date = DateTimeField(default=datetime.utcnow)

    meta = {'collection': 'cart_items', 'indexes': ['user_id', 'course_id', 'status', '-created_date']}
    def to_json(self):
        return {
            'id': str(self.id),
            'user_id': str(self.user_id.id) if self.user_id else None,
            'course_id': str(self.course_id.id) if self.course_id else None,
            'status': self.status,
            'created_date': self.created_date.isoformat() if self.created_date else None
        }