from mongoengine import Document, StringField, IntField, BooleanField, DateTimeField
from datetime import datetime

class Admin(Document):
    username = StringField(required=True, unique=True)
    email = StringField(required=True, unique=True, sparse=True)
    phone = StringField(unique=True, sparse=True)  # Optional but unique if present
    password = StringField(required=True)
    role = IntField(choices=[0, 1], default=1) # 0 = superadmin, 1 = subadmin
    login_otp = StringField()
    otp_created_at = DateTimeField()
    is_email_verified = BooleanField(default=False)
    status = IntField(default=0)  # 1 = active, 0 = inactive
    is_deleted = BooleanField(default=False)    
    created_date = StringField(default=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    meta = {'collection': 'admin'}
    def to_json(self):
        return {
            'id': str(self.id),
            'username': self.username,
            'email': self.email,
            'phone': self.phone,
            'role': self.role,
            'is_email_verified': self.is_email_verified,
            'status': self.status,
            'is_deleted': self.is_deleted,
            'created_date': self.created_date
        }
