freeleaps-service-hub/apps/devops/app/common/models/code_depot/code_depot.py
2025-06-07 11:32:53 -07:00

40 lines
811 B
Python

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)])
]