from app.database.base import Base from app.models import ( # noqa: F401 AnomalyCase, Conversation, ConversationMessage, OperationAudit, ReviewRecord, RiskAssessment, RiskItem, RiskModelConfig, RolePermission, StandardRule, SupplierProfile, UserAccount, ) from sqlalchemy import BigInteger def test_prd_core_tables_are_registered() -> None: assert set(Base.metadata.tables) == { "anomaly_cases", "anomaly_case_suppliers", "conversations", "integration_assessments", "integration_conversations", "integration_conversation_requests", "integration_nonces", "conversation_messages", "operation_audits", "review_records", "risk_assessments", "risk_items", "risk_model_configs", "purchase_order_lines", "role_permissions", "standard_rules", "supplier_profiles", "supplier_master", "user_accounts", } def test_prd_tables_use_bigint_primary_keys() -> None: for table in Base.metadata.sorted_tables: assert isinstance(table.c.id.type, BigInteger) assert table.c.id.primary_key def test_review_and_standard_foreign_keys_are_registered() -> None: review_targets = { foreign_key.target_fullname for foreign_key in Base.metadata.tables["review_records"].foreign_keys } anomaly_targets = { foreign_key.target_fullname for foreign_key in Base.metadata.tables["anomaly_cases"].foreign_keys } assert review_targets == {"risk_items.id", "anomaly_cases.id"} assert anomaly_targets == {"standard_rules.id"}