Files
MermsCoreFlask/app/models/members_webfiles.py
T
CHIEFSOFT\ameye 416dbfdbe0 Fix data
2025-12-29 21:09:14 -05:00

87 lines
3.1 KiB
Python

from datetime import datetime, timezone, timedelta
from itertools import product
from app.extensions import db
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import relationship
from dateutil.relativedelta import relativedelta
from datetime import timedelta
import logging
from sqlalchemy import and_, or_, not_
from sqlalchemy.sql import func
from app.api.types.data_types import MemberFileData
import uuid
logger = logging.getLogger(__name__)
class MembersWebfiles(db.Model):
__tablename__ = 'members_webfiles'
id = db.Column(
db.Integer,
primary_key=True,
autoincrement=True,
)
uid = db.Column(db.String(150), nullable=False)
member_id = db.Column(db.Integer, nullable=False)
member_uid = db.Column(db.String(100), nullable=False)
file_group = db.Column(db.String(25), nullable=False)
filename = db.Column(db.String(100), nullable=False)
save_filename = db.Column(db.String(100), nullable=False)
file_type = db.Column(db.String(50), nullable=False)
status = db.Column(db.Integer, nullable=True, default=1)
file_size = db.Column(db.Integer, nullable=True, default=0)
added = db.Column(db.DateTime(timezone=True), server_default=func.now())
updated = db.Column(db.DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
@classmethod
def create_file_profile(cls, file_data: MemberFileData):
logger.info(
f"File Data {file_data.member_id} {file_data.member_uid} {file_data.file_group} {file_data.save_filename} {file_data.save_filename} {file_data.file_type} {file_data.file_size} ")
file_save_data = cls(
uid=str(uuid.uuid4()),
member_id=file_data.member_id,
member_uid=file_data.member_uid,
file_group=file_data.file_group,
filename=file_data.filename,
save_filename=file_data.save_filename,
file_type=file_data.file_type,
file_size=file_data.file_size,
added=datetime.now(timezone.utc),
updated=datetime.now(timezone.utc)
)
try:
logger.info(f" About to Insert Members File Data {file_data.member_id} ")
db.session.add(file_save_data)
db.session.flush()
except IntegrityError as err:
logger.error(f" Error inserting file_save_data data {err} -- ")
raise ValueError(f"Database integrity error: {err}")
return file_save_data
def to_dict(self):
"""
Convert the Loan object to a dictionary format for JSON serialization.
"""
return {
'id': self.id,
'uid': self.uid,
'member_id': self.member_id,
'member_uid': self.member_uid,
'file_group': self.file_group,
'filename': self.filename,
'save_filename': self.save_filename,
'file_type': self.file_type,
'status': self.status,
'file_size': self.file_size,
'added': self.added,
'updated': self.updated
}
def __repr__(self):
return f'<MembersWebfiles {self.id}>'