File size: 1,086 Bytes
ed52286
 
 
 
 
 
 
 
 
 
d82da85
ed52286
 
 
 
 
 
 
 
 
 
 
 
fc1a5f0
ed52286
 
 
 
d82da85
ed52286
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
"""
Modèle SQLAlchemy 2.0 — configuration du modèle IA par corpus.

Une seule ligne par corpus (corpus_id = PK).
La clé API n'est JAMAIS stockée ici (R06) — elle reste dans l'environnement.
"""
# 1. stdlib
from datetime import datetime

# 2. third-party
from sqlalchemy import Boolean, DateTime, ForeignKey, String
from sqlalchemy.orm import Mapped, mapped_column

# 3. local
from app.models.database import Base


class ModelConfigDB(Base):
    """Modèle IA sélectionné pour un corpus (1 entrée par corpus)."""

    __tablename__ = "model_configs"

    corpus_id: Mapped[str] = mapped_column(
        String, ForeignKey("corpora.id", ondelete="CASCADE"), primary_key=True
    )
    provider_type: Mapped[str] = mapped_column(String, nullable=False)
    selected_model_id: Mapped[str] = mapped_column(String, nullable=False)
    selected_model_display_name: Mapped[str] = mapped_column(String, nullable=False)
    supports_vision: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
    updated_at: Mapped[datetime] = mapped_column(DateTime, nullable=False)