new signup data
This commit is contained in:
+13
-3
@@ -1372,7 +1372,17 @@ grant all privileges on database merms_panel to merms_panel;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE signup (
|
||||||
|
id SERIAL,
|
||||||
|
uid uuid DEFAULT uuid_generate_v4(),
|
||||||
|
email VARCHAR(100) NOT NULL,
|
||||||
|
firstname VARCHAR(25) NOT NULL,
|
||||||
|
lastname VARCHAR(25) NOT NULL,
|
||||||
|
loc INET,
|
||||||
|
status INT DEFAULT 0,
|
||||||
|
added timestamp without time zone DEFAULT now(),
|
||||||
|
updated timestamp without time zone DEFAULT now()
|
||||||
|
);
|
||||||
|
ALTER TABLE ONLY signup
|
||||||
|
ADD CONSTRAINT signup_id_key UNIQUE (id);
|
||||||
|
|
||||||
|
|||||||
@@ -22,10 +22,11 @@ from .custom_templates import CustomTemplates
|
|||||||
from .products_colorstyle import ProductsColorStyle
|
from .products_colorstyle import ProductsColorStyle
|
||||||
from .country import Country
|
from .country import Country
|
||||||
from .members_webfiles import MembersWebfiles
|
from .members_webfiles import MembersWebfiles
|
||||||
|
from .signup import Signup
|
||||||
|
|
||||||
__all__ = ['Members', 'Account', 'Products',
|
__all__ = ['Members', 'Account', 'Products',
|
||||||
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails',
|
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails',
|
||||||
'ProvisionActions', 'MembersProductsRefresh', 'MembersProductsSettings',
|
'ProvisionActions', 'MembersProductsRefresh', 'MembersProductsSettings', 'Signup',
|
||||||
'PasswordReset', 'MembersProfile', 'SubscriptionOptions', 'SubscriptionOptionsItems',
|
'PasswordReset', 'MembersProfile', 'SubscriptionOptions', 'SubscriptionOptionsItems',
|
||||||
'ProductsTemplates', 'ProductsColorStyle', 'Payments', 'PaymentsSession',
|
'ProductsTemplates', 'ProductsColorStyle', 'Payments', 'PaymentsSession',
|
||||||
'SubscriptionGenerative', 'GenerativeResults',
|
'SubscriptionGenerative', 'GenerativeResults',
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class Members(db.Model):
|
|||||||
email = db.Column(db.String(100), nullable=False)
|
email = db.Column(db.String(100), nullable=False)
|
||||||
account_name = db.Column(db.String(100), nullable=True)
|
account_name = db.Column(db.String(100), nullable=True)
|
||||||
firstname = db.Column(db.String(25), nullable=False)
|
firstname = db.Column(db.String(25), nullable=False)
|
||||||
lastname = db.Column(db.String(100), nullable=True)
|
lastname = db.Column(db.String(25), nullable=True)
|
||||||
country = db.Column(db.String(3), nullable=True)
|
country = db.Column(db.String(3), nullable=True)
|
||||||
profile_completed = db.Column(db.DateTime(timezone=False))
|
profile_completed = db.Column(db.DateTime(timezone=False))
|
||||||
stripe_customer_id = db.Column(db.String(100), nullable=True)
|
stripe_customer_id = db.Column(db.String(100), nullable=True)
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
from datetime import datetime, timezone, timedelta
|
||||||
|
from app.extensions import db
|
||||||
|
from sqlalchemy.sql import func
|
||||||
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
import uuid
|
||||||
|
from app.utils.logger import logger
|
||||||
|
|
||||||
|
|
||||||
|
class Signup(db.Model):
|
||||||
|
__tablename__ = 'signup'
|
||||||
|
|
||||||
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||||
|
uid = db.Column(db.String(150), nullable=False)
|
||||||
|
email = db.Column(db.String(100), nullable=False)
|
||||||
|
firstname = db.Column(db.String(25), nullable=False)
|
||||||
|
lastname = db.Column(db.String(25), nullable=True)
|
||||||
|
loc = db.Column(db.String(20), nullable=True)
|
||||||
|
status = db.Column(db.Integer, default=1)
|
||||||
|
added = db.Column(db.DateTime(timezone=False), server_default=func.now())
|
||||||
|
updated = db.Column(db.DateTime(timezone=False), server_default=func.now(), onupdate=func.now())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# "account_id": self.account_id,
|
||||||
|
def to_dict(self):
|
||||||
|
return {
|
||||||
|
"id": self.id,
|
||||||
|
"uid": str(self.uid),
|
||||||
|
"loc": self.loc,
|
||||||
|
"status": self.status,
|
||||||
|
"added": self.added.isoformat() if self.added else None,
|
||||||
|
"updated": self.updated.isoformat() if self.updated else None,
|
||||||
|
"email": self.email,
|
||||||
|
"firstname": self.firstname,
|
||||||
|
"lastname": self.lastname,
|
||||||
|
}
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f'<Signup {self.id} - {self.uid}>'
|
||||||
|
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def add_signup(cls, firstname, lastname, email):
|
||||||
|
|
||||||
|
# Save the response
|
||||||
|
signup_data = cls(
|
||||||
|
uid=str(uuid.uuid4()),
|
||||||
|
firstname=firstname,
|
||||||
|
lastname=lastname,
|
||||||
|
email=email,
|
||||||
|
added=datetime.now(timezone.utc),
|
||||||
|
updated=datetime.now(timezone.utc)
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
db.session.add(signup_data)
|
||||||
|
except IntegrityError as err:
|
||||||
|
raise ValueError(f"Database integrity error: {err}")
|
||||||
|
return signup_data
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user