Coverage for src / mysingle / core / audit / models.py: 0%
19 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-02 00:58 +0900
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-02 00:58 +0900
1from datetime import UTC, datetime
3from beanie import PydanticObjectId
4from pydantic import Field
6from ..base.models import BaseTimeDoc
9class AuditLog(BaseTimeDoc):
10 """HTTP 요청/응답 감사 로그 문서.
12 Week 14 잔여 과제: 필드 확장(요청 페이로드 크기, 처리 소요시간, 응답 크기).
13 기타 기본 컨텍스트 필드 포함.
14 """
16 # Who/Context
17 user_id: PydanticObjectId | None = None
18 service: str
19 request_id: str | None = None
20 trace_id: str | None = None
22 # Request
23 method: str
24 path: str
25 ip: str | None = None
26 user_agent: str | None = None
27 req_bytes: int = 0
29 # Response
30 status_code: int
31 resp_bytes: int = 0
33 # Timing
34 latency_ms: int = 0
35 occurred_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
38__all__ = ["AuditLog"]