Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
oyaji / oyaji / users / models.py
Size: Mime:
# -*- coding: utf-8 -*-
# Python

from datetime import datetime

# Third
from mongoengine import (
    BooleanField,
    DateTimeField,
    DictField,
    EmailField,
    EmbeddedDocument,
    EmbeddedDocumentField,
    StringField,
    URLField,
)

# Apps
from oyaji.core.models import Iugu
from oyaji.address.models import Address


class Registration(EmbeddedDocument):
    accepted_terms = BooleanField(default=False)
    activate_account = BooleanField(default=False)
    iugu_integrated = BooleanField(default=False)
    completed = BooleanField(default=False)


class UserAbstract:
    """
    Default implementation for User fields
    """

    meta = {"abstract": True, "ordering": ["email"]}

    email = EmailField(required=True, unique=True)
    password = StringField(required=True)

    created = DateTimeField(default=datetime.now)
    active = BooleanField(default=False)

    def is_active(self):
        return self.active


class UserMixin(UserAbstract):
    """
    Users are Buyers
    """

    meta = {"collection": "users"}

    avatar = URLField()
    name = StringField(required=True)
    social = DictField()
    cpf_cnpj = StringField(default="")
    birth_date = DateTimeField()
    phone_prefix = StringField(default="31")
    phone = StringField(default="")
    address = EmbeddedDocumentField(Address, default=Address)
    iugu = EmbeddedDocumentField(Iugu, default=Iugu)