diff --git a/apps/devops/app/common/models/code_depot/__init__.py b/apps/devops/app/common/models/code_depot/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/devops/app/common/models/code_depot/code_depot.py b/apps/devops/app/common/models/code_depot/code_depot.py new file mode 100644 index 0000000..c3d8ffc --- /dev/null +++ b/apps/devops/app/common/models/code_depot/code_depot.py @@ -0,0 +1,39 @@ +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)]) + ] + + +