From e85c533e5c61220c8392fce75e7c7ff2328adaf1 Mon Sep 17 00:00:00 2001 From: zaman Date: Sat, 18 Apr 2026 02:31:01 +0900 Subject: [PATCH 1/2] =?UTF-8?q?add(project):=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=20=EC=83=81=ED=83=9C=20=EB=B0=8F=20=EC=8B=9C=EC=9E=91?= =?UTF-8?q?/=EC=A2=85=EB=A3=8C=20=EC=97=B0=EB=8F=84=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/datagsm_openapi/api/project.py | 5 ++++- src/datagsm_openapi/models/__init__.py | 2 ++ src/datagsm_openapi/models/enums.py | 7 +++++++ src/datagsm_openapi/models/project.py | 10 +++++++++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/datagsm_openapi/api/project.py b/src/datagsm_openapi/api/project.py index 363ab2b..9db5fcb 100644 --- a/src/datagsm_openapi/api/project.py +++ b/src/datagsm_openapi/api/project.py @@ -3,7 +3,7 @@ from dataclasses import dataclass from typing import Optional -from ..models import Project, ProjectResponse, ProjectSortBy, SortDirection +from ..models import Project, ProjectResponse, ProjectSortBy, ProjectStatus, SortDirection from ._base import BaseApi @@ -15,6 +15,7 @@ class ProjectRequest: project_id: Project ID for exact match project_name: Project name for filtering club_id: Club ID filter + status: Project operation status filter (default: ACTIVE) page: Page number (default: 0) size: Page size (default: 100) sort_by: Sort field @@ -24,6 +25,7 @@ class ProjectRequest: project_id: Optional[int] = None project_name: Optional[str] = None club_id: Optional[int] = None + status: Optional[ProjectStatus] = ProjectStatus.ACTIVE page: int = 0 size: int = 100 sort_by: Optional[ProjectSortBy] = None @@ -39,6 +41,7 @@ def to_params(self) -> dict[str, Optional[object]]: "projectId": self.project_id, "projectName": self.project_name, "clubId": self.club_id, + "status": self.status.value if self.status else None, "page": self.page, "size": self.size, "sortBy": self.sort_by.value if self.sort_by else None, diff --git a/src/datagsm_openapi/models/__init__.py b/src/datagsm_openapi/models/__init__.py index bb2ba5e..0100d2c 100644 --- a/src/datagsm_openapi/models/__init__.py +++ b/src/datagsm_openapi/models/__init__.py @@ -9,6 +9,7 @@ Major, MealType, ProjectSortBy, + ProjectStatus, Sex, SortDirection, StudentRole, @@ -33,6 +34,7 @@ "Project", "ProjectResponse", "ProjectSortBy", + "ProjectStatus", "Schedule", "Sex", "SortDirection", diff --git a/src/datagsm_openapi/models/enums.py b/src/datagsm_openapi/models/enums.py index 755d7ec..fc015a4 100644 --- a/src/datagsm_openapi/models/enums.py +++ b/src/datagsm_openapi/models/enums.py @@ -89,3 +89,10 @@ class ProjectSortBy(str, Enum): ID = "ID" NAME = "NAME" + + +class ProjectStatus(str, Enum): + """프로젝트 운영 상태 (Project Status).""" + + ACTIVE = "ACTIVE" + ENDED = "ENDED" diff --git a/src/datagsm_openapi/models/project.py b/src/datagsm_openapi/models/project.py index 36d08e0..01bb145 100644 --- a/src/datagsm_openapi/models/project.py +++ b/src/datagsm_openapi/models/project.py @@ -5,7 +5,7 @@ from pydantic import BaseModel, ConfigDict, Field from .club import Club -from .enums import Major, Sex +from .enums import Major, ProjectStatus, Sex class ParticipantInfo(BaseModel): @@ -43,6 +43,9 @@ class Project(BaseModel): description: Project description club: Associated club participants: List of project participants + start_year: Year the project started + end_year: Year the project ended (None if still active) + status: Project operation status (ACTIVE or ENDED) """ id: int = Field(..., description="Project ID") @@ -52,6 +55,11 @@ class Project(BaseModel): participants: list[ParticipantInfo] = Field( default_factory=list, description="Project participants" ) + start_year: int = Field(..., alias="startYear", description="Year the project started") + end_year: Optional[int] = Field( + None, alias="endYear", description="Year the project ended" + ) + status: ProjectStatus = Field(..., description="Project operation status") model_config = ConfigDict(populate_by_name=True) From 821e0cba05c1eb396a34ba6a1135a70b4a89dd7c Mon Sep 17 00:00:00 2001 From: zaman Date: Sat, 18 Apr 2026 02:32:05 +0900 Subject: [PATCH 2/2] =?UTF-8?q?update(global):=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- src/datagsm_openapi/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d86eecb..6730aa5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "datagsm-openapi-sdk" -version = "1.1.1" +version = "1.2.0" description = "Python SDK for DataGSM OpenAPI" readme = "README.md" requires-python = ">=3.9" diff --git a/src/datagsm_openapi/__init__.py b/src/datagsm_openapi/__init__.py index 1993bf8..fe8fd6f 100644 --- a/src/datagsm_openapi/__init__.py +++ b/src/datagsm_openapi/__init__.py @@ -36,7 +36,7 @@ ValidationException, ) -__version__ = "1.1.1" +__version__ = "1.2.0" __all__ = [ "BadRequestException",