24 lines
662 B
Python
24 lines
662 B
Python
import uuid
|
|
from datetime import date, datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class SubscriptionHistoryEntry(BaseModel):
|
|
"""One recorded change, most recent first when listed."""
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: uuid.UUID
|
|
change_type: str
|
|
from_plan_id: Optional[uuid.UUID] = None
|
|
to_plan_id: Optional[uuid.UUID] = None
|
|
from_end_date: Optional[date] = None
|
|
to_end_date: Optional[date] = None
|
|
from_status: Optional[str] = None
|
|
to_status: Optional[str] = None
|
|
changed_by_email: Optional[str] = None
|
|
notes: Optional[str] = None
|
|
created_at: datetime
|