apigateway / models.py
jebin2's picture
Add IP address, full referrer URL, and improved decryption fallback
651af0e
raw
history blame
1.03 kB
"""
SQLAlchemy models for the URL Blink application.
"""
from sqlalchemy import Column, Integer, String, Text, DateTime, JSON
from sqlalchemy.sql import func
from database import Base
class BlinkData(Base):
"""
Model for storing decrypted blink data.
Attributes:
id: Primary key
user_id: User identifier (first 20 chars from URL param)
refer_url: Referer URL from request header
json_data: Decrypted JSON data
created_at: Timestamp of record creation
"""
__tablename__ = "blink_data"
id = Column(Integer, primary_key=True, autoincrement=True, index=True)
user_id = Column(String(20), index=True, nullable=False)
refer_url = Column(Text, nullable=True)
ip_address = Column(String(45), nullable=True) # IPv6 can be up to 45 chars
json_data = Column(JSON, nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())
def __repr__(self):
return f"<BlinkData(id={self.id}, user_id={self.user_id})>"