From f691345279859411d3c2157d5c2d1e432a0c2282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 25 Mar 2025 14:29:34 +0100 Subject: [PATCH] add person object --- csfunctions/objects/__init__.py | 3 +++ csfunctions/objects/base.py | 1 + csfunctions/objects/person.py | 22 ++++++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 csfunctions/objects/person.py diff --git a/csfunctions/objects/__init__.py b/csfunctions/objects/__init__.py index a2ef86a..bbe38a1 100644 --- a/csfunctions/objects/__init__.py +++ b/csfunctions/objects/__init__.py @@ -9,6 +9,7 @@ from .engineering_change import EngineeringChange from .file import File from .part import BOMItem, Material, Part +from .person import Person from .workflow import Workflow Object = Annotated[ @@ -23,6 +24,7 @@ ObjectPropertyValue, Briefcase, Workflow, + Person, ], Field(discriminator="object_type"), ] @@ -40,4 +42,5 @@ "Briefcase", "Workflow", "BaseObject", + "Person", ] diff --git a/csfunctions/objects/base.py b/csfunctions/objects/base.py index 6778be9..dea08bf 100644 --- a/csfunctions/objects/base.py +++ b/csfunctions/objects/base.py @@ -18,6 +18,7 @@ class ObjectType(str, Enum): OBJECT_PROPERTY_VALUE = "object_property_value" WORKFLOW = "workflow" BRIEFCASE = "briefcase" + PERSON = "person" class BaseObject(BaseModel): diff --git a/csfunctions/objects/person.py b/csfunctions/objects/person.py new file mode 100644 index 0000000..69297e9 --- /dev/null +++ b/csfunctions/objects/person.py @@ -0,0 +1,22 @@ +from typing import Literal + +from pydantic import Field + +from csfunctions.objects.base import BaseObject, ObjectType + + +class Person(BaseObject): + object_type: Literal[ObjectType.PERSON] = ObjectType.PERSON + + personalnummer: str = Field(..., description="Personal Number") + name: str = Field(..., description="System-Name") + firstname: str | None = Field(None, description="First Name") + lastname: str | None = Field(None, description="Last Name") + gender: str | None = Field(None, description="Gender") + title: str | None = Field(None, description="Title") + initials: str | None = Field(None, description="Initials") + active_account: bool | None = Field(None, description="Active Account") + org_id: str | None = Field(None, description="Organization ID") + abt_nummer: str | None = Field(None, description="Department Number") + e_mail: str | None = Field(None, description="Email") + telefon: str | None = Field(None, description="Phone")