Spaces:
Sleeping
Sleeping
File size: 1,902 Bytes
dfdddb1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | # 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] |