diff --git a/werk24/models/v2/enums.py b/werk24/models/v2/enums.py index 62bbc8b..f3bdee2 100644 --- a/werk24/models/v2/enums.py +++ b/werk24/models/v2/enums.py @@ -1408,3 +1408,26 @@ class PrimaryProcessType(str, Enum): CUTTING = "CUTTING" TURNING = "TURNING" MILLING = "MILLING" + + +class CertificationType(str, Enum): + AS9100 = "AS9100" + CMRT = "CMRT" + COC = "COC" + EAR = "EAR" + EN_9100 = "EN_9100" + FINISHING_CERT = "FINISHING_CERT" + HARDWARE_CERT = "HARDWARE_CERT" + IATF_16949 = "IATF_16949" + ISO_13485 = "ISO_13485" + ISO_14001 = "ISO_14001" + ISO_9001 = "ISO_9001" + ITAR = "ITAR" + JCP = "JCP" + MATERIAL_CERT_DFARS = "MATERIAL_CERT_DFARS" + MATERIAL_CERT_STANDARD = "MATERIAL_CERT_STANDARD" + MATERIAL_TRACEABILITY = "MATERIAL_TRACEABILITY" + NADCAP = "NADCAP" + NIST_800_171 = "NIST_800_171" + REACH = "REACH" + ROHS = "ROHS" diff --git a/werk24/models/v2/models.py b/werk24/models/v2/models.py index 963aa2e..1b655ab 100644 --- a/werk24/models/v2/models.py +++ b/werk24/models/v2/models.py @@ -10,6 +10,7 @@ ) from .enums import ( + CertificationType, CoordinateSpace, CurvatureType, DepthType, @@ -1271,3 +1272,21 @@ class BoundingDimensions(BaseModel): None, description="The enclosing cylinder of the component.", ) + + +class Certification(BaseModel): + """ + Represents a certification or compliance mark on a part or drawing. + """ + + certification_type: CertificationType = Field( + ..., + description="The type of certification, such as CE, UL, or ISO.", + examples=[CertificationType.EAR], + ) + + raw_ocr: Optional[str] = Field( + None, + description="Raw OCR text extracted from the drawing that contains the certification information.", + examples=["Requires Certificate of Compliance"], + ) diff --git a/werk24/models/v2/responses.py b/werk24/models/v2/responses.py index bff524d..363af4c 100644 --- a/werk24/models/v2/responses.py +++ b/werk24/models/v2/responses.py @@ -9,6 +9,7 @@ BillOfMaterial, Bore, BoundingDimensions, + Certification, Chamfer, Dimension, Entry, @@ -153,6 +154,10 @@ class ResponseMetaDataComponentDrawing(Response): None, description="Bill of materials for the component, listing parts and quantities.", ) + certifications: List[Certification] = Field( + default_factory=list, + description="List of certifications associated with the component.", + ) designation: list[Entry] = Field( default_factory=list, description="Designation of the component.", @@ -177,6 +182,10 @@ class ResponseMetaDataComponentDrawing(Response): default_factory=list, description="Material options available for the component.", ) + notes: list[Note] = Field( + default_factory=list, + description="List of all notes in the drawing.", + ) projection_method: Optional[ProjectionMethod] = Field( None, description="Projection method used in the drawing (e.g., first angle or third angle).", @@ -189,10 +198,6 @@ class ResponseMetaDataComponentDrawing(Response): None, description="Weight of the component.", ) - notes: list[Note] = Field( - default_factory=list, - description="List of all notes in the drawing.", - ) class ResponseRedaction(Response):