mirror of
https://github.com/simple-login/app.git
synced 2025-02-24 15:53:22 +08:00
create Metric model
This commit is contained in:
parent
0de5b5a9bf
commit
980942a1f9
2 changed files with 70 additions and 0 deletions
|
@ -2078,3 +2078,36 @@ class AuthorizedAddress(db.Model, ModelMixin):
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"<AuthorizedAddress {self.id} {self.email} {self.mailbox_id}>"
|
return f"<AuthorizedAddress {self.id} {self.email} {self.mailbox_id}>"
|
||||||
|
|
||||||
|
|
||||||
|
class Metric(db.Model, ModelMixin):
|
||||||
|
"""For storing different metrics like number of users, etc"""
|
||||||
|
|
||||||
|
date = db.Column(ArrowType, default=arrow.utcnow, nullable=False)
|
||||||
|
name = db.Column(db.String(256), nullable=False)
|
||||||
|
value = db.Column(db.Float, nullable=False)
|
||||||
|
|
||||||
|
NB_USER = "nb_user"
|
||||||
|
NB_ACTIVATED_USER = "nb_activated_user"
|
||||||
|
|
||||||
|
NB_PREMIUM = "nb_premium"
|
||||||
|
NB_APPLE_PREMIUM = "nb_apple_premium"
|
||||||
|
NB_CANCELLED_PREMIUM = "nb_cancelled_premium"
|
||||||
|
NB_MANUAL_PREMIUM = "nb_manual_premium"
|
||||||
|
NB_COINBASE_PREMIUM = "nb_coinbase_premium"
|
||||||
|
|
||||||
|
# nb users who have been referred
|
||||||
|
NB_REFERRED_USER = "nb_referred_user"
|
||||||
|
NB_REFERRED_USER_PAID = "nb_referred_user_paid"
|
||||||
|
|
||||||
|
NB_ALIAS = "nb_alias"
|
||||||
|
|
||||||
|
NB_FORWARD = "nb_forward"
|
||||||
|
NB_BLOCK = "nb_block"
|
||||||
|
NB_REPLY = "nb_reply"
|
||||||
|
NB_BOUNCED = "nb_bounced"
|
||||||
|
NB_SPAM = "nb_spam"
|
||||||
|
|
||||||
|
NB_VERIFIED_CUSTOM_DOMAIN = "nb_verified_custom_domain"
|
||||||
|
|
||||||
|
NB_APP = "nb_app"
|
||||||
|
|
37
migrations/versions/2021_012518_2779eb90c6c4_.py
Normal file
37
migrations/versions/2021_012518_2779eb90c6c4_.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
"""empty message
|
||||||
|
|
||||||
|
Revision ID: 2779eb90c6c4
|
||||||
|
Revises: 1b54995bc086
|
||||||
|
Create Date: 2021-01-25 18:45:29.910152
|
||||||
|
|
||||||
|
"""
|
||||||
|
import sqlalchemy_utils
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '2779eb90c6c4'
|
||||||
|
down_revision = '1b54995bc086'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.create_table('metric',
|
||||||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||||||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||||||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||||||
|
sa.Column('date', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||||||
|
sa.Column('name', sa.String(length=256), nullable=False),
|
||||||
|
sa.Column('value', sa.Float(), nullable=False),
|
||||||
|
sa.PrimaryKeyConstraint('id')
|
||||||
|
)
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_table('metric')
|
||||||
|
# ### end Alembic commands ###
|
Loading…
Reference in a new issue