File: //proc/thread-self/root/home/arjun/projects/buyercall/buyercall/blueprints/chat/models.py
import logging
import uuid
from sqlalchemy.dialects.postgresql import UUID
from buyercall.lib.util_sqlalchemy import ResourceMixin
from sqlalchemy.sql import func
from buyercall.extensions import db
log = logging.getLogger(__name__)
class Chat(ResourceMixin, db.Model):
__tablename__ = 'chat'
id = db.Column(db.Integer, primary_key=True)
sid = db.Column(UUID(as_uuid=True), unique=True, default=uuid.uuid4, index=True)
widget_id = db.Column(
db.Integer,
db.ForeignKey('widgets.id', onupdate='CASCADE', ondelete='CASCADE'),
index=True,
nullable=False
)
first_name = db.Column(db.String(50))
last_name = db.Column(db.String(50), nullable=True)
email = db.Column(db.String(120), index=True)
phone_number = db.Column(db.String(20), nullable=True)
contact_id = db.Column(
db.Integer(),
db.ForeignKey('contacts.id', onupdate="CASCADE", ondelete='SET_NULL'),
index=True,
nullable=True
)
source = db.Column(
db.Integer,
db.ForeignKey('source.id', onupdate='CASCADE', ondelete='CASCADE'),
index=True,
nullable=True
)
channel = db.Column(
db.Integer,
db.ForeignKey('channel.id', onupdate='CASCADE', ondelete='CASCADE'),
index=True,
nullable=True
)
partnership_account_id = db.Column(db.Integer, db.ForeignKey(
'partnership_accounts.id', onupdate='CASCADE', ondelete='CASCADE'), index=True, nullable=False)
created_at = db.Column(db.DateTime(), default=func.now(), server_default=func.now())
def __str__(self):
return self.email