feat(project):add sts
This commit is contained in:
+13
-1
@@ -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='مقدار طول جغرافیایی در این فیلد قرار می گیرد')
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user