from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, Float, UUID
from sqlalchemy.orm import relationship
from datetime import datetime
import uuid
from src.utils.db import Base,engine


class Datasource(Base):
    __tablename__ = "datasource"

    ds_id = Column(Integer, primary_key=True, index=True, autoincrement=True)
    store_id = Column(Integer, ForeignKey("stores.store_id"), nullable=False)
    branch_id = Column(Integer, ForeignKey("branches.branch_id"), nullable=False)  # Fixed missing FK
    source_type = Column(String, nullable=False)
    url = Column(String, nullable=False)
    snapshot_id = Column(String, unique=True, nullable=False)
    last_fetch_date = Column(DateTime, nullable=True)
    last_fetch_status = Column(String, nullable=True)
    created_at = Column(DateTime, default=datetime.utcnow, nullable=False)

    # Relationships
    store = relationship("Store", back_populates="datasources")
    branch = relationship("Branch", back_populates="datasources")
    feedbacks = relationship("Feedback", back_populates="datasource")
    tasks = relationship("Task", back_populates="datasource") 
    emotions=  relationship("Emotion", back_populates="datasource") 
    words =  relationship("Word", back_populates="datasource")
    review_topics=  relationship("ReviewTopic", back_populates="datasource")


