Spaces:
Sleeping
Sleeping
| # Modèles de base de données pour Scrap-Dji | |
| from sqlalchemy import Column, String, Text, DateTime, ForeignKey, Table | |
| from sqlalchemy.dialects.postgresql import UUID | |
| from sqlalchemy.ext.declarative import declarative_base | |
| import datetime | |
| Base = declarative_base() | |
| class Document(Base): | |
| __tablename__ = 'documents' | |
| id = Column(UUID(as_uuid=True), primary_key=True) | |
| titre = Column(String) | |
| texte = Column(Text) | |
| langue = Column(String) | |
| type_document = Column(String) | |
| auteur = Column(String) | |
| source_url = Column(String) | |
| tags = Column(String) | |
| pays = Column(String) | |
| date = Column(DateTime, default=datetime.datetime.utcnow) | |
| class DocumentVersion(Base): | |
| __tablename__ = 'document_versions' | |
| id = Column(UUID(as_uuid=True), primary_key=True) | |
| document_id = Column(UUID(as_uuid=True), ForeignKey('documents.id')) | |
| texte = Column(Text) | |
| date = Column(DateTime, default=datetime.datetime.utcnow) | |
| class Image(Base): | |
| __tablename__ = 'images' | |
| id = Column(UUID(as_uuid=True), primary_key=True) | |
| document_id = Column(UUID(as_uuid=True), ForeignKey('documents.id')) | |
| image_hash = Column(String) | |
| chemin = Column(String) | |
| class LienExterne(Base): | |
| __tablename__ = 'liens_externes' | |
| id = Column(UUID(as_uuid=True), primary_key=True) | |
| document_id = Column(UUID(as_uuid=True), ForeignKey('documents.id')) | |
| url = Column(String) | |
| # Schémas Pydantic pour MongoDB (NoSQL) | |
| from pydantic import BaseModel, Field | |
| from typing import List, Optional | |
| class MongoDocument(BaseModel): | |
| uuid: str | |
| titre: str | |
| texte: str | |
| langue: str | |
| type_document: str | |
| auteur: Optional[str] | |
| source_url: Optional[str] | |
| tags: Optional[List[str]] | |
| pays: Optional[str] | |
| date: Optional[str] | |
| images: Optional[List[str]] | |
| liens_externes: Optional[List[str]] | |
| versions: Optional[List[dict]] | |
| metadonnees: Optional[dict] |