from __future__ import annotations from dataclasses import dataclass, field from datetime import UTC, date, datetime from uuid import uuid4 @dataclass(slots=True) class DailyUsageRecord: id: str user_id: str usage_date: date usage_type: str = "free_clip" count: int = 0 updated_at: datetime = field(default_factory=lambda: datetime.now(UTC)) @classmethod def create( cls, user_id: str, usage_date: date, usage_type: str = "free_clip", ) -> "DailyUsageRecord": return cls( id=uuid4().hex, user_id=user_id, usage_date=usage_date, usage_type=usage_type, )