/
tsps
/
case_loader
Обзор
Документация
Войти
/
tsps
/
case_loader
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
app/models/tables.py
77 строк
3 KB
Василий Петров
Добавлена дата в модель Документов
01 мар 2026, 21:34
01 мар 2026, 21:34
badc5e3
Код
Авторство
О чём код?
from sqlalchemy import Table, Column, Integer, String, MetaData, Text, ForeignKey, Date from sqlalchemy.dialects.postgresql import TIMESTAMP, JSONB, BYTEA from sqlalchemy.sql import func metadata = MetaData() # Только нужные колонки — read-only judge = Table( "judge", metadata, Column("id", Integer, primary_key=True), Column("last_name", String, nullable=False), Column("first_name", String, nullable=False), Column("middle_name", String, nullable=True), ) court = Table( "court", metadata, Column("id", Integer, primary_key=True), Column("name", String, nullable=False), ) document_type = Table( "document_type", metadata, Column("id", Integer, primary_key=True), Column("name", String, nullable=False), ) document_import_job = Table( "document_import_job", metadata, Column("id", Integer, primary_key=True), Column("status", String, nullable=False), # created | in_progress | completed | failed Column("search_params", JSONB, nullable=False), Column("result_summary", JSONB, nullable=True), Column("error_message", Text, nullable=True), Column("created_at", TIMESTAMP(timezone=True), server_default=func.now()), Column("updated_at", TIMESTAMP(timezone=True), onupdate=func.now()) ) # Таблицы для записи case_entity = Table( "case_entity", metadata, Column("id", Integer, primary_key=True), Column("number", String(100), nullable=False, unique=True), ) document = Table( "document", metadata, Column("id", Integer, primary_key=True), Column("title", String(500), nullable=True), Column("number", String(100), nullable=True), Column("date", Date, nullable=True), Column("type_id", Integer, ForeignKey("document_type.id"), nullable=False), Column("case_entity_id", Integer, ForeignKey("case_entity.id"), nullable=False), Column("judge_id", Integer, ForeignKey("judge.id"), nullable=False), Column("court_id", Integer, ForeignKey("court.id"), nullable=False), Column("text", Text, nullable=True), Column("text_extracted_at", TIMESTAMP(timezone=True), nullable=True), Column("created_at", TIMESTAMP(timezone=True), server_default=func.now()), Column("updated_at", TIMESTAMP(timezone=True), onupdate=func.now()), ) document_file = Table( "document_file", metadata, Column("id", Integer, primary_key=True), Column("document_id", Integer, ForeignKey("document.id", ondelete="CASCADE"), nullable=False, unique=True), Column("file_data", BYTEA, nullable=False), Column("file_size", Integer, nullable=False), Column("mime_type", String(100), nullable=False, server_default="application/pdf"), Column("uploaded_at", TIMESTAMP(timezone=True), server_default=func.now()), )