feat(project):add sts

This commit is contained in:
shahzeydyfah
2024-03-14 15:33:17 +03:30
parent 594b369507
commit 429e000040
2 changed files with 35 additions and 2 deletions
+13 -1
View File
@@ -6,6 +6,15 @@ from pydantic import Field
from typing import Optional, List, Literal
from core.models.base import BaseModel
class UpdateSts(pydantic.BaseModel):
sts: Literal[1, 2, 3, 4] = Field(description="""
1.شروع نشده
2.جاری
3.متوقف
4.خاتمه یافته
""")
reason_stop: Optional[str] = Field(description="دلیل موقف کردن پروژه در این فیلد قرار می گیرد")
class Budget(pydantic.BaseModel):
year:str=Field("سال بودجه")
amount:int=Field("مبلغ بودجه")
@@ -103,7 +112,10 @@ class Design(pydantic.BaseModel):
class ProjectModel(BaseModel):
id: Optional[uuid.UUID] = Field(alias='_id')
user_id: Optional[int] = Field(description='کد شناسایی کاربر در این فیلد قرار می گیرد')
sts: Optional[int] = Field(description='وضعیت در این فیلد قرار می گیرد')
sts: Literal[1,2] = Field(default=1,description="""
1.جاری
2.حذف شده
""")
counter: Optional[int] = Field(description='شمارنده در این فیلد قرار می گیرد')
lat:Optional[str]= Field(description='مقدار عرض جغرافیایی در این فیلد قرار می گیرد')
lang:Optional[str]= Field(description='مقدار طول جغرافیایی در این فیلد قرار می گیرد')
+22 -1
View File
@@ -1,6 +1,8 @@
from uuid import UUID
from app.models.project import ProjectModel
from fastapi import HTTPException
from app.models.project import ProjectModel, UpdateSts
from core.repositories.base import BaseRepository
from core.service.mongo_db import use_collection
@@ -47,6 +49,25 @@ class ProjectRepository(BaseRepository[ProjectModel]):
await use_collection(COLLECTION).update_one({"_id":_id},{"$set":update.mongo_dict()})
return await self.get(_id)
async def update_design_sts(self, _id: UUID, update: UpdateSts):
old_project = await use_collection(COLLECTION).find_one({"_id":_id})
if not old_project:
raise HTTPException(status_code=400,detail='این پروژه وجود ندارد')
await use_collection(COLLECTION).update_one({"_id":_id},{"$set":{
'design.sts':update.sts,'design.reason_stop':update.reason_stop
}})
return True
async def delete(self, _id: UUID):
old_project = await use_collection(COLLECTION).find_one({"_id":_id})
if not old_project:
raise HTTPException(status_code=400,detail='این پروژه وجود ندارد')
await use_collection(COLLECTION).update_one({"_id":_id},{"$set":{
'sts':2,
}})
return True
async def list_project_design(self):
project = await use_collection(COLLECTION).find({'monitor':{"$exists":0}}).to_list(None)
return project