Files
ksef_app/app/models/company.py
Mateusz Gruszczyński 35571df778 push
2026-03-13 11:03:13 +01:00

30 lines
1.4 KiB
Python

from app.extensions import db
from app.models.base import TimestampMixin
class Company(TimestampMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=False, unique=True)
tax_id = db.Column(db.String(32), index=True)
regon = db.Column(db.String(32), index=True, default='')
address = db.Column(db.String(255), default='')
bank_account = db.Column(db.String(64), default='')
is_active = db.Column(db.Boolean, default=True, nullable=False)
sync_enabled = db.Column(db.Boolean, default=False, nullable=False)
sync_interval_minutes = db.Column(db.Integer, default=60, nullable=False)
notification_enabled = db.Column(db.Boolean, default=True, nullable=False)
note = db.Column(db.Text)
class UserCompanyAccess(TimestampMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False, index=True)
company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False, index=True)
access_level = db.Column(db.String(20), default='full', nullable=False)
user = db.relationship('User', back_populates='company_access')
company = db.relationship('Company', back_populates='user_access')
Company.user_access = db.relationship('UserCompanyAccess', back_populates='company', cascade='all, delete-orphan')