Add SetShare model for per-user set sharing
This commit is contained in:
1 parent
f03b3bfdaf
commit
af714e7b9d
1 file changed
+31
@@ -0,0 +1,31 @@
|
|||||||
|
"""
|
||||||
|
Explicit share: one user granted access to one set whose visibility
|
||||||
|
is 'shared'.
|
||||||
|
|
||||||
|
Created by: Jess Rogerson (yelling commands at Claude.AI)
|
||||||
|
"""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from app import db
|
||||||
|
|
||||||
|
|
||||||
|
class SetShare(db.Model):
|
||||||
|
"""A set shared with a specific user."""
|
||||||
|
|
||||||
|
__tablename__ = 'set_shares'
|
||||||
|
__table_args__ = (
|
||||||
|
db.UniqueConstraint('set_id', 'user_id', name='uq_set_share'),
|
||||||
|
)
|
||||||
|
|
||||||
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
set_id = db.Column(db.Integer, db.ForeignKey('sets.id', ondelete='CASCADE'),
|
||||||
|
nullable=False, index=True)
|
||||||
|
user_id = db.Column(db.Integer, db.ForeignKey('users.id', ondelete='CASCADE'),
|
||||||
|
nullable=False, index=True)
|
||||||
|
created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
|
user = db.relationship('User', lazy='joined')
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f'<SetShare set={self.set_id} user={self.user_id}>'
|
||||||
Reference in new issue
Block a user