new signup data

This commit is contained in:
CHIEFSOFT\ameye
2026-04-04 21:27:53 -04:00
parent 2bfb802b10
commit 5f4a9112c3
4 changed files with 77 additions and 5 deletions
+13 -3
View File
@@ -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);
+2 -1
View File
@@ -22,10 +22,11 @@ from .custom_templates import CustomTemplates
from .products_colorstyle import ProductsColorStyle
from .country import Country
from .members_webfiles import MembersWebfiles
from .signup import Signup
__all__ = ['Members', 'Account', 'Products',
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails',
'ProvisionActions', 'MembersProductsRefresh', 'MembersProductsSettings',
'ProvisionActions', 'MembersProductsRefresh', 'MembersProductsSettings', 'Signup',
'PasswordReset', 'MembersProfile', 'SubscriptionOptions', 'SubscriptionOptionsItems',
'ProductsTemplates', 'ProductsColorStyle', 'Payments', 'PaymentsSession',
'SubscriptionGenerative', 'GenerativeResults',
+1 -1
View File
@@ -20,7 +20,7 @@ class Members(db.Model):
email = db.Column(db.String(100), nullable=False)
account_name = db.Column(db.String(100), nullable=True)
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)
profile_completed = db.Column(db.DateTime(timezone=False))
stripe_customer_id = db.Column(db.String(100), nullable=True)
+61
View File
@@ -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