from pydantic import BaseModel, Field from typing import List class Article(BaseModel): number: str = Field(description="Số điều, ví dụ như: Điều 1, Điều 2, Điều 3") title: str = Field(description="Tiêu đề điều đứng ngay sau Số điều, ví dụ như: Phạm vi điều chỉnh, Đối tượng áp dụng") content: str = Field(description="Nội dung chương bên dưới tiêu đề điều") class Chapter(BaseModel): number: str = Field(description="Số chương, ví dụ như: Chương 1, Chương 2, Chương 3") title: str = Field(description="Tiêu đề chương đứng bên dưới Số chương, ví dụ như: Những quy định chung, Quyền trách nhiệm của người lao động") content: str = Field(description="Nội dung chương bên dưới tiêu đề chương") articles: List[Article] = Field(description="Danh sách các điều") class Law(BaseModel): number: str = Field(description="Luật số hoặc số, ví dụ như: 58/2014/QH13") title: str = Field(description="Tên luật, ví dụ như: Luật bảo hiểm xã hội") publisher: str = Field(description="Cơ quan Phát hành, ví dụ như: Chính phủ, Quốc Hội") publish_date: str = Field(description="Ngày Phát hành, ví dụ như: Ngày 29 tháng 5 năm 2015") publish_location: str = Field(description="Nơi Phát hành, ví dụ như: Hà Nội, Đà Nẵng") document_type: str = Field(description="Loại văn bản, ví dụ như: Luật, Thông tư, Nghị định") chapters: List[Chapter] = Field(description="Danh sách các chương")