HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
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