Filtering by positive/negative feedback is not supported.The data layer methods are not async. Boto3 is not async and therefore the data layer uses non-async blocking io.
This implementation uses Single Table Design. There are 4 different entity types in one table identified by the prefixes in PK & SK.Here are the entity types:
Copy
type User = { PK: "USER#{user.identifier}" SK: "USER" // ...PersistedUser}type Thread = { PK: f"THREAD#{thread_id}" SK: "THREAD" // GSI: UserThread for querying in list_threads UserThreadPK: f"USER#{user_id}" UserThreadSK: f"TS#{ts}" // ...ThreadDict}type Step = { PK: f"THREAD#{threadId}" SK: f"STEP#{stepId}" // ...StepDict // feedback is stored as part of step. // NOTE: feedback.value is stored as Decimal in dynamo which is not json serializable feedback?: Feedback}type Element = { "PK": f"THREAD#{threadId}" "SK": f"ELEMENT#{element.id}" // ...ElementDict}