from datetime import datetime, timezone from typing import List, Optional, Dict from beanie import Document from enum import IntEnum from pymongo import IndexModel class DepotStatus(IntEnum): TO_BE_CREATED = 0 CREATED = 1 DELETED = 2 class UserAccountStatus(IntEnum): TO_BE_CREATED = 0 CREATED = 1 DELETED = 2 DEACTIVATED = 3 class CodeDepotDoc(Document): depot_name: str product_id: str depot_status: DepotStatus collaborators: List[str] = [] total_commits: Optional[int] = 0 last_commiter: Optional[str] = "" last_update: Optional[datetime] = datetime.now(timezone.utc) weekly_commits: Optional[Dict[str, int]] = {} class Settings: name = "code_depot" indexes = [ IndexModel([("product_id", 1)]) ]