# -*- coding: utf-8; -*- ################################################################################ # # Rattail -- Retail Software Framework # Copyright © 2010-2020 Lance Edgar # # This file is part of Rattail. # # Rattail is free software: you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. # # Rattail is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # Rattail. If not, see . # ################################################################################ """ Database schema extensions for CORE-POS integration """ import sqlalchemy as sa from sqlalchemy import orm from rattail.db import model __all__ = ['CoreVendor'] class CoreVendor(model.Base): """ CORE-specific extensions to :class:`rattail:rattail.db.model.Vendor`. """ __tablename__ = 'corepos_vendor' __table_args__ = ( sa.ForeignKeyConstraint(['uuid'], ['vendor.uuid'], name='corepos_vendor_fk_vendor'), ) __versioned__ = {} uuid = model.uuid_column(default=None) vendor = orm.relationship( model.Vendor, doc=""" Reference to the actual vendor record, which this one extends. """, backref=orm.backref( '_corepos', uselist=False, cascade='all, delete-orphan', doc=""" Reference to the CORE-POS extension record for this vendor. """)) corepos_id = sa.Column(sa.Integer(), nullable=False, doc=""" ``vendorID`` value for the vendor, within CORE-POS. """) def __str__(self): return str(self.vendor) CoreVendor.make_proxy(model.Vendor, '_corepos', 'corepos_id')