Spaces:
Sleeping
Sleeping
File size: 1,203 Bytes
2fc3d0f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
"""
User Document Link Model
"""
from sqlalchemy import Column, String, Text, Date
from sqlalchemy.dialects.postgresql import UUID, JSONB
from datetime import datetime
from app.core.database import Base
import uuid
class UserDocumentLink(Base):
"""
User Document Link model - Links users to their identity/compliance documents
"""
__tablename__ = "user_document_links"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
user_id = Column(UUID(as_uuid=True), nullable=False)
document_id = Column(UUID(as_uuid=True), nullable=False)
# Document type
document_link_type = Column(Text, nullable=False) # 'national_id', 'driver_license', etc.
# Expiry tracking
issued_at = Column(Date)
expires_at = Column(Date)
# Metadata
notes = Column(Text)
additional_metadata = Column(JSONB, default=dict)
# Timestamps
created_at = Column(String(50), default=lambda: datetime.utcnow().isoformat())
updated_at = Column(String(50), default=lambda: datetime.utcnow().isoformat())
def __repr__(self):
return f"<UserDocumentLink(user_id='{self.user_id}', type='{self.document_link_type}')>"
|