fix(models): approval.py 改用 timezone.utc 相容 Python 3.10
CI runner 用 Python 3.10,datetime.UTC 是 3.11 才加入。 改用 datetime.timezone.utc 全版本相容,修復 CI type-sync 全量失敗。 # 2026-04-06 ogt: root cause — CI Python 3.10 無法 import UTC Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,7 @@ Features:
|
||||
- Pydantic 強型別驗證
|
||||
"""
|
||||
|
||||
from datetime import UTC, datetime
|
||||
from datetime import datetime, timezone
|
||||
from enum import Enum
|
||||
from uuid import UUID, uuid4
|
||||
|
||||
@@ -106,7 +106,7 @@ class Signature(BaseModel):
|
||||
id: UUID = Field(default_factory=uuid4)
|
||||
signer_id: str = Field(..., description="簽核者 ID")
|
||||
signer_name: str = Field(..., description="簽核者名稱")
|
||||
signed_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
||||
signed_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
comment: str | None = None
|
||||
|
||||
# Phase 5.4.5: Telegram 審計軌跡
|
||||
@@ -153,14 +153,14 @@ class ApprovalRequest(ApprovalRequestBase):
|
||||
status: ApprovalStatus = Field(default=ApprovalStatus.PENDING)
|
||||
required_signatures: int = Field(..., description="所需簽核數")
|
||||
signatures: list[Signature] = Field(default_factory=list)
|
||||
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
||||
updated_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
||||
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
resolved_at: datetime | None = Field(default=None, description="解決時間")
|
||||
rejection_reason: str | None = Field(default=None)
|
||||
# 戰略 B: 告警風暴收斂
|
||||
fingerprint: str | None = Field(default=None, description="告警指紋 Hash")
|
||||
hit_count: int = Field(default=1, description="聚合觸發次數")
|
||||
last_seen_at: datetime = Field(default_factory=lambda: datetime.now(UTC), description="最後觸發時間")
|
||||
last_seen_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), description="最後觸發時間")
|
||||
# 2026-04-06 ogt: 關聯 Incident — 萃取 Playbook 與 KM 寫入必須知道 incident_id
|
||||
incident_id: str | None = Field(default=None, description="關聯的 Incident ID")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user