"""Minimal valid tab JSON for submit readiness checks (technical classification).""" from __future__ import annotations from typing import Any, Dict def minimal_report_tab(*, initiative_name: str = "Test initiative") -> Dict[str, Any]: return { "introduction": "Mở đầu đủ.", "initiativeName": initiative_name, "representativeAuthor": "Nguyễn Văn A", "representativePhone": "0900000000", "representativeEmail": "a@ump.edu.vn", "applicationField": "Y tế", "currentStatus": "Hiện trạng.", "purpose": "Mục đích.", "solutionContent": "Nội dung giải pháp.", "implementationSteps": "Các bước.", "firstAppliedUnit": "Đơn vị.", "achievedResult": "Kết quả.", "conditions": "Điều kiện.", "trialUnits": [], "novelty": "Tính mới.", "effectiveness": { "economic": "Kinh tế.", "social": "Xã hội.", "teaching": "Giảng dạy.", "productivity": "", "quality": "", "environment": "", "safety": "An toàn.", }, "confidentialInfo": "", "submissionDate": "05/05/2026", "authorName": "Nguyễn Văn A", "honestyConfirmed": True, } def minimal_application_tab_technical(*, initiative_name: str = "Test initiative") -> Dict[str, Any]: return { "unitName": "Đơn vị A", "authors": [ { "id": 1, "name": "Nguyễn Văn A", "dob": "01/01/1980", "workplace": "UMP", "title": "GV", "qualification": "TS", "contributionPercent": 100, } ], "initiativeName": initiative_name, "investorName": "Chủ đầu tư", "applicationField": "Y tế", "firstApplyDate": "15/04/2025", "initiativeClassification": "technical", "textbookEvidenceKind": "", "researchEvidenceKind": "", "researchEvidenceFile": None, "textbookEvidenceFile": None, "technicalEvidenceFile": None, "internationalJournalDeclaration": "", "banCamKet": {}, "referenceMaterialHonesty": {}, "researchDomesticHonesty": {}, "contentSummary": "Tóm tắt nội dung.", "confidentialInfo": "", "conditions": "Điều kiện đơn.", "authorEvaluation": "Đánh giá tác giả.", "trialEvaluation": "Đánh giá thử.", "supportStaff": [], "honestyConfirmed": True, "submissionDay": 5, "submissionMonth": 5, "submissionYear": "2026", } def minimal_contribution_tab(*, initiative_name: str = "Test initiative") -> Dict[str, Any]: return { "initiativeName": initiative_name, "mainAuthor": "Nguyễn Văn A", "position": "UMP", "representativePercent": 100, "submissionDate": "2026-05-05T00:00:00.000Z", "participants": [], "digitalSignatureConfirmed": True, } def minimal_tabs_bundle(*, initiative_name: str = "Test initiative") -> Dict[str, Dict[str, Any]]: return { "report": minimal_report_tab(initiative_name=initiative_name), "application": minimal_application_tab_technical(initiative_name=initiative_name), "contribution": minimal_contribution_tab(initiative_name=initiative_name), }