diff --git a/.idea/misc.xml b/.idea/misc.xml
index 264b142..6c59753 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file
diff --git a/.idea/roleplay-contracts.iml b/.idea/roleplay-contracts.iml
index 4ca2486..ba5db29 100644
--- a/.idea/roleplay-contracts.iml
+++ b/.idea/roleplay-contracts.iml
@@ -5,7 +5,7 @@
-
+
\ No newline at end of file
diff --git a/api/rpk-api/firm/current_firm/__init__.py b/api/rpk-api/firm/current_firm/__init__.py
index a25b942..a52a44f 100644
--- a/api/rpk-api/firm/current_firm/__init__.py
+++ b/api/rpk-api/firm/current_firm/__init__.py
@@ -5,7 +5,7 @@ from pydantic import Field
from firm.core.models import CrudDocument
from firm.core.schemas import Writer, Reader
-from firm.entity.schemas import EntityIndividualCreate, EntityCorporationCreate
+from firm.entity.schemas import EntityIndividualCreate, EntityCorporationCreate, EntityRead
class CurrentFirmModel(CrudDocument):
@@ -34,7 +34,17 @@ class CurrentFirmModel(CrudDocument):
class CurrentFirmSchemaRead(Reader):
- pass
+ entity: EntityRead
+ partner: EntityRead
+ instance: str
+ firm: str
+ primary_color: str
+ secondary_color: str
+
+ @classmethod
+ def from_model_and_entities(cls, model, entity, partner):
+ schema = cls(**model.model_dump(mode="json"), entity=entity, partner=partner)
+ return schema
class CurrentFirmSchemaCreate(Writer):
corporation: EntityCorporationCreate = Field(title="Informations sur la firme")
@@ -51,3 +61,12 @@ class CurrentFirmSchemaUpdate(Writer):
class Partner(CrudDocument):
user_id: PydanticObjectId = Field()
entity_id: PydanticObjectId = Field()
+
+ @classmethod
+ async def get_by_user_id(cls, db, user_id):
+ document = await cls._get_collection(db).find_one({"user_id": str(user_id)})
+ if not document:
+ return None
+
+ document["id"] = document.pop("_id")
+ return cls.model_validate(document)
diff --git a/api/rpk-api/firm/current_firm/routes.py b/api/rpk-api/firm/current_firm/routes.py
index a9a13fa..b4a803d 100644
--- a/api/rpk-api/firm/current_firm/routes.py
+++ b/api/rpk-api/firm/current_firm/routes.py
@@ -3,13 +3,17 @@ from fastapi import APIRouter, Depends
from firm.core.depends import get_authed_tenant_registry, get_uninitialized_registry
from firm.current_firm import CurrentFirmModel, CurrentFirmSchemaRead, CurrentFirmSchemaCreate, CurrentFirmSchemaUpdate, Partner
from firm.entity.models import Entity, Employee
+from firm.entity.schemas import EntityRead
current_firm_router = APIRouter()
@current_firm_router.get("/", response_model=CurrentFirmSchemaRead, response_description=f"Current Firm records retrieved")
async def read(reg=Depends(get_authed_tenant_registry)) -> CurrentFirmSchemaRead:
document = await CurrentFirmModel.get_current(reg.db)
- return CurrentFirmSchemaRead.from_model(document)
+ entity = await Entity.get(reg.db, document.entity_id)
+ partner = await Partner.get_by_user_id(reg.db, reg.user.id)
+ partner = await Entity.get(reg.db, partner.entity_id)
+ return CurrentFirmSchemaRead.from_model_and_entities(document, EntityRead.from_model(entity), EntityRead.from_model(partner))
@current_firm_router.post("/", response_description=f"Current Firm added to the database")
async def create(schema: CurrentFirmSchemaCreate, reg=Depends(get_uninitialized_registry)) -> CurrentFirmSchemaRead: