Files
PlantGuideScraper/backend/app/models/api_key.py
2026-04-12 09:54:27 -05:00

19 lines
789 B
Python

from sqlalchemy import Column, Integer, String, Float, Boolean
from app.database import Base
class ApiKey(Base):
__tablename__ = "api_keys"
id = Column(Integer, primary_key=True, index=True)
source = Column(String, unique=True, nullable=False) # 'flickr', 'inaturalist', 'wikimedia', 'trefle'
api_key = Column(String, nullable=False) # Also used as Client ID for OAuth sources
api_secret = Column(String, nullable=True) # Also used as Client Secret for OAuth sources
access_token = Column(String, nullable=True) # For OAuth sources like Wikimedia
rate_limit_per_sec = Column(Float, default=1.0)
enabled = Column(Boolean, default=True)
def __repr__(self):
return f"<ApiKey(id={self.id}, source='{self.source}', enabled={self.enabled})>"