Files
CHIEFSOFT\ameye 8759bc8457 bckend fix
2025-09-30 13:04:02 -04:00

71 lines
2.1 KiB
Python

from datetime import datetime, timezone
from app.extensions import db
from app.models.charge import Charge
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from sqlalchemy.exc import IntegrityError
from dateutil.relativedelta import relativedelta
import logging
from sqlalchemy import and_, or_, not_
from sqlalchemy.sql import func
import uuid
logger = logging.getLogger(__name__)
class CustomTemplates(db.Model):
__tablename__ = 'custom_templates'
id = db.Column(db.String, primary_key=True)
uid = db.Column(db.String, nullable=False)
custom_id = db.Column(db.String, nullable=False)
provision_name = db.Column(db.String, nullable=False)
added = db.Column(db.DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
@classmethod
def get_template_by_custom_id(cls, custom_id):
templates = cls.query.filter_by(custom_id=str(custom_id)).first()
if not templates:
return None
return templates
@classmethod
def create_template(cls, custom_id,provision_name):
custom_data = cls(
uid=str(uuid.uuid4()),
custom_id=custom_id,
provision_name=provision_name,
added=datetime.now(timezone.utc)
)
try:
logger.info(f" About to Insert Subscription Data {custom_data.custom_id} ")
db.session.add(custom_data)
db.session.flush()
except IntegrityError as err:
logger.error(f" Error inserting custom data {err} -- ")
raise ValueError(f"Database integrity error: {err}")
return custom_data
@classmethod
def get_custom_template_for_office(cls, filters):
templates = cls.query.all()
if not templates:
raise ValueError(f"Templates not found")
return templates
def to_dict(self):
return {
"id": self.id,
"uid": self.uid,
"custom_id": self.product_id,
"provision_name": self.name,
"added": self.added.isoformat() if self.added else None
}
def __repr__(self):
return f'<CustomTemplates {self.id}>'