fix: create whole life cycle data create and update

main
MrWaradana 12 months ago
parent 716917a52b
commit 5ca3c6808c

@ -6,7 +6,6 @@ from src.models import DefaultMixin, IdentityMixin
class PlantTransactionData(Base, DefaultMixin, IdentityMixin):
__tablename__ = "lcc_plant_tr_data"
id = Column(UUID(as_uuid=True), primary_key=True, index=True)
tahun = Column(Integer, nullable=False)
is_actual = Column(Integer, nullable=False)
seq = Column(Integer, nullable=False)

@ -7,8 +7,6 @@ from src.models import DefaultBase, Pagination
class PlantTransactionDataBase(DefaultBase):
year: Optional[int] = Field(None, nullable=True)
rp_per_kwh: Optional[float] = Field(None, nullable=True)
tahun: Optional[int] = Field(None, nullable=True)
is_actual: Optional[int] = Field(None, nullable=True)
seq: Optional[int] = Field(None, nullable=True)
@ -70,7 +68,6 @@ class PlantTransactionDataBase(DefaultBase):
class PlantTransactionDataCreate(PlantTransactionDataBase):
pass
class PlantTransactionDataUpdate(PlantTransactionDataBase):
pass

@ -12,7 +12,9 @@ async def get(
*, db_session: DbSession, transaction_data_id: str
) -> Optional[PlantTransactionData]:
"""Returns a document based on the given document id."""
query = Select(PlantTransactionData).filter(PlantTransactionData.id == transaction_data_id)
query = Select(PlantTransactionData).filter(
PlantTransactionData.id == transaction_data_id
)
result = await db_session.execute(query)
return result.scalars().one_or_none()
@ -38,36 +40,40 @@ async def get_all(
return results
async def create(*, db_session: DbSession, yeardata_in: PlantTransactionDataCreate):
async def create(
*, db_session: DbSession, transaction_data_in: PlantTransactionDataCreate
):
"""Creates a new document."""
yeardata = PlantTransactionData(**yeardata_in.model_dump())
db_session.add(yeardata)
transaction_data = PlantTransactionData(**transaction_data_in.model_dump())
db_session.add(transaction_data)
await db_session.commit()
return yeardata
return transaction_data
async def update(
*,
db_session: DbSession,
yeardata: PlantTransactionData,
yeardata_in: PlantTransactionDataUpdate,
transaction_data: PlantTransactionData,
transaction_data_in: PlantTransactionDataUpdate,
):
"""Updates a document."""
data = yeardata_in.model_dump()
data = transaction_data_in.model_dump()
update_data = yeardata_in.model_dump(exclude_defaults=True)
update_data = transaction_data_in.model_dump(exclude_defaults=True)
for field in data:
if field in update_data:
setattr(yeardata, field, update_data[field])
setattr(transaction_data, field, update_data[field])
await db_session.commit()
return yeardata
return transaction_data
async def delete(*, db_session: DbSession, transaction_data_id: str):
"""Deletes a document."""
query = Delete(PlantTransactionData).where(PlantTransactionData.id == transaction_data_id)
query = Delete(PlantTransactionData).where(
PlantTransactionData.id == transaction_data_id
)
await db_session.execute(query)
await db_session.commit()

Loading…
Cancel
Save