Backend - models.py

Modèles SQLAlchemy pour User et FileUpload (42 lignes).

Code Source

# Imports pour la définition du modèle de base de données
from sqlalchemy import Column, Integer, String, DateTime, BigInteger
from datetime import datetime
from database import Base
 
# Modèle représentant un fichier uploadé dans la base de données
class UploadedFile(Base):
    __tablename__ = "uploaded_files"  # Nom de la table dans PostgreSQL
    
    # Clé primaire auto-incrémentée
    id = Column(Integer, primary_key=True, index=True)
    
    # Nom original du fichier uploadé par l'utilisateur
    filename = Column(String, index=True)
    
    # Nom du fichier stocké sur le serveur (avec timestamp pour unicité)
    stored_filename = Column(String, unique=True)
    
    # Chemin complet vers le fichier sur le système de fichiers
    file_path = Column(String)
    
    # Taille du fichier en octets
    file_size = Column(BigInteger)
    
    # Type d'utilisateur (metier, partenaire, particulier)
    user_type = Column(String, index=True)
    
    # Nom de l'utilisateur qui a uploadé le fichier
    user_name = Column(String)
    
    # Nombre de lignes dans le fichier CSV/Excel
    rows_count = Column(Integer, default=0)
    
    # Nombre de colonnes dans le fichier CSV/Excel
    columns_count = Column(Integer, default=0)
    
    # Date et heure de l'upload
    upload_date = Column(DateTime, default=datetime.now)
    
    # Représentation textuelle de l'objet pour le débogage
    def __repr__(self):
        return f"<UploadedFile(id={self.id}, filename={self.filename})>"

Télécharger

Télécharger models.py