Skip to content

Commit 9c2b03c

Browse files
committed
Add display_number to content creation logic
1 parent 0451bc8 commit 9c2b03c

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

core_backend/app/contents/models.py

+33
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,16 @@ async def save_content_to_db(
141141
content_embedding = await _get_content_embeddings(
142142
content=content, metadata=metadata
143143
)
144+
latest_display_number = await get_latest_display_number(
145+
asession=asession, workspace_id=workspace_id
146+
)
144147
content_db = ContentDB(
145148
content_embedding=content_embedding,
146149
content_metadata=content.content_metadata,
147150
content_tags=content.content_tags,
148151
content_text=content.content_text,
149152
content_title=content.content_title,
153+
display_number=latest_display_number + 1,
150154
created_datetime_utc=datetime.now(timezone.utc),
151155
updated_datetime_utc=datetime.now(timezone.utc),
152156
workspace_id=workspace_id,
@@ -563,3 +567,32 @@ async def update_votes_in_db(
563567
content_db = await asession.merge(content_db)
564568
await asession.commit()
565569
return content_db
570+
571+
572+
async def get_latest_display_number(
573+
*, asession: AsyncSession, workspace_id: int
574+
) -> int:
575+
"""Get the latest display number from the database.
576+
577+
Parameters
578+
----------
579+
asession
580+
The SQLAlchemy async session to use for all database connections.
581+
workspace_id
582+
The ID of the workspace to get the latest display number from.
583+
584+
Returns
585+
-------
586+
int
587+
The latest display number if it exists, otherwise 0.
588+
"""
589+
590+
stmt = (
591+
select(ContentDB.display_number)
592+
.where(ContentDB.workspace_id == workspace_id)
593+
.order_by(ContentDB.display_number.desc())
594+
.limit(1)
595+
)
596+
result = await asession.execute(stmt)
597+
latest_display_number = result.scalar_one_or_none()
598+
return latest_display_number or 0

0 commit comments

Comments
 (0)