from pydantic import BaseModel, HttpUrl
from typing import Optional
import uuid
from datetime import datetime


class ExternalDatasourceCreate(BaseModel):
    store_id: int
    branch_id: int
    source_type: str
    url: HttpUrl  # Ensures valid URL

class InternalDatasourceCreate(BaseModel):
    store_id: int
    branch_id: int
    

class DatasourceResponse(BaseModel):
    ds_id: int  
    store_id: int  
    branch_id: int  
    source_type: str
    url: HttpUrl
    snapshot_id: str  
    last_fetch_date: Optional[datetime] = None
    last_fetch_status: Optional[str] = None
    created_at: datetime

    class Config:
        from_attributes = True  # Enables ORM conversion
