internal.queries.inbox
1# Code generated by sqlc. DO NOT EDIT. 2# versions: 3# sqlc v1.30.0 4# source: inbox.sql 5import pydantic 6from typing import AsyncIterator, Optional 7 8import sqlalchemy 9import sqlalchemy.ext.asyncio 10 11from internal.queries import models 12 13 14CREATE_INBOX_MESSAGE = """-- name: create_inbox_message \\:one 15INSERT INTO inbox (user_id, sender_id, message_subject, message_text) 16VALUES (:p1, :p2, :p3, :p4) 17RETURNING message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status 18""" 19 20 21class CreateInboxMessageParams(pydantic.BaseModel): 22 user_id: int 23 sender_id: int 24 message_subject: str 25 message_text: str 26 27 28DELETE_INBOX_MESSAGE = """-- name: delete_inbox_message \\:one 29DELETE FROM inbox 30WHERE message_id = :p1 31RETURNING message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status 32""" 33 34 35GET_INBOXES = """-- name: get_inboxes \\:many 36SELECT message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status 37FROM inbox 38""" 39 40 41GET_USER_INBOX = """-- name: get_user_inbox \\:many 42SELECT message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status 43FROM inbox 44WHERE user_id = :p1 45""" 46 47 48class AsyncQuerier: 49 def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection): 50 self._conn = conn 51 52 async def create_inbox_message(self, arg: CreateInboxMessageParams) -> Optional[models.Inbox]: 53 row = (await self._conn.execute(sqlalchemy.text(CREATE_INBOX_MESSAGE), { 54 "p1": arg.user_id, 55 "p2": arg.sender_id, 56 "p3": arg.message_subject, 57 "p4": arg.message_text, 58 })).first() 59 if row is None: 60 return None 61 return models.Inbox( 62 message_id=row[0], 63 user_id=row[1], 64 sender_id=row[2], 65 message_subject=row[3], 66 message_text=row[4], 67 sent_at=row[5], 68 read_status=row[6], 69 ) 70 71 async def delete_inbox_message(self, *, message_id: int) -> Optional[models.Inbox]: 72 row = (await self._conn.execute(sqlalchemy.text(DELETE_INBOX_MESSAGE), {"p1": message_id})).first() 73 if row is None: 74 return None 75 return models.Inbox( 76 message_id=row[0], 77 user_id=row[1], 78 sender_id=row[2], 79 message_subject=row[3], 80 message_text=row[4], 81 sent_at=row[5], 82 read_status=row[6], 83 ) 84 85 async def get_inboxes(self) -> AsyncIterator[models.Inbox]: 86 result = await self._conn.stream(sqlalchemy.text(GET_INBOXES)) 87 async for row in result: 88 yield models.Inbox( 89 message_id=row[0], 90 user_id=row[1], 91 sender_id=row[2], 92 message_subject=row[3], 93 message_text=row[4], 94 sent_at=row[5], 95 read_status=row[6], 96 ) 97 98 async def get_user_inbox(self, *, user_id: int) -> AsyncIterator[models.Inbox]: 99 result = await self._conn.stream(sqlalchemy.text(GET_USER_INBOX), {"p1": user_id}) 100 async for row in result: 101 yield models.Inbox( 102 message_id=row[0], 103 user_id=row[1], 104 sender_id=row[2], 105 message_subject=row[3], 106 message_text=row[4], 107 sent_at=row[5], 108 read_status=row[6], 109 )
CREATE_INBOX_MESSAGE =
'-- name: create_inbox_message \\:one\nINSERT INTO inbox (user_id, sender_id, message_subject, message_text)\nVALUES (:p1, :p2, :p3, :p4)\nRETURNING message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status\n'
class
CreateInboxMessageParams(pydantic.main.BaseModel):
22class CreateInboxMessageParams(pydantic.BaseModel): 23 user_id: int 24 sender_id: int 25 message_subject: str 26 message_text: str
!!! abstract "Usage Documentation" Models
A base class for creating Pydantic models.
Attributes:
- __class_vars__: The names of the class variables defined on the model.
- __private_attributes__: Metadata about the private attributes of the model.
- __signature__: The synthesized
__init__[Signature][inspect.Signature] of the model. - __pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
- __pydantic_core_schema__: The core schema of the model.
- __pydantic_custom_init__: Whether the model has a custom
__init__function. - __pydantic_decorators__: Metadata containing the decorators defined on the model.
This replaces
Model.__validators__andModel.__root_validators__from Pydantic V1. - __pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
- __pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
- __pydantic_post_init__: The name of the post-init method for the model, if defined.
- __pydantic_root_model__: Whether the model is a [
RootModel][pydantic.root_model.RootModel]. - __pydantic_serializer__: The
pydantic-coreSchemaSerializerused to dump instances of the model. - __pydantic_validator__: The
pydantic-coreSchemaValidatorused to validate instances of the model. - __pydantic_fields__: A dictionary of field names and their corresponding [
FieldInfo][pydantic.fields.FieldInfo] objects. - __pydantic_computed_fields__: A dictionary of computed field names and their corresponding [
ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects. - __pydantic_extra__: A dictionary containing extra values, if [
extra][pydantic.config.ConfigDict.extra] is set to'allow'. - __pydantic_fields_set__: The names of fields explicitly set during instantiation.
- __pydantic_private__: Values of private attributes set on the model instance.
DELETE_INBOX_MESSAGE =
'-- name: delete_inbox_message \\:one\nDELETE FROM inbox\nWHERE message_id = :p1\nRETURNING message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status\n'
GET_INBOXES =
'-- name: get_inboxes \\:many\nSELECT message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status\nFROM inbox\n'
GET_USER_INBOX =
'-- name: get_user_inbox \\:many\nSELECT message_id, user_id, sender_id, message_subject, message_text, sent_at, read_status\nFROM inbox\nWHERE user_id = :p1\n'
class
AsyncQuerier:
49class AsyncQuerier: 50 def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection): 51 self._conn = conn 52 53 async def create_inbox_message(self, arg: CreateInboxMessageParams) -> Optional[models.Inbox]: 54 row = (await self._conn.execute(sqlalchemy.text(CREATE_INBOX_MESSAGE), { 55 "p1": arg.user_id, 56 "p2": arg.sender_id, 57 "p3": arg.message_subject, 58 "p4": arg.message_text, 59 })).first() 60 if row is None: 61 return None 62 return models.Inbox( 63 message_id=row[0], 64 user_id=row[1], 65 sender_id=row[2], 66 message_subject=row[3], 67 message_text=row[4], 68 sent_at=row[5], 69 read_status=row[6], 70 ) 71 72 async def delete_inbox_message(self, *, message_id: int) -> Optional[models.Inbox]: 73 row = (await self._conn.execute(sqlalchemy.text(DELETE_INBOX_MESSAGE), {"p1": message_id})).first() 74 if row is None: 75 return None 76 return models.Inbox( 77 message_id=row[0], 78 user_id=row[1], 79 sender_id=row[2], 80 message_subject=row[3], 81 message_text=row[4], 82 sent_at=row[5], 83 read_status=row[6], 84 ) 85 86 async def get_inboxes(self) -> AsyncIterator[models.Inbox]: 87 result = await self._conn.stream(sqlalchemy.text(GET_INBOXES)) 88 async for row in result: 89 yield models.Inbox( 90 message_id=row[0], 91 user_id=row[1], 92 sender_id=row[2], 93 message_subject=row[3], 94 message_text=row[4], 95 sent_at=row[5], 96 read_status=row[6], 97 ) 98 99 async def get_user_inbox(self, *, user_id: int) -> AsyncIterator[models.Inbox]: 100 result = await self._conn.stream(sqlalchemy.text(GET_USER_INBOX), {"p1": user_id}) 101 async for row in result: 102 yield models.Inbox( 103 message_id=row[0], 104 user_id=row[1], 105 sender_id=row[2], 106 message_subject=row[3], 107 message_text=row[4], 108 sent_at=row[5], 109 read_status=row[6], 110 )
async def
create_inbox_message( self, arg: CreateInboxMessageParams) -> internal.queries.models.Inbox | None:
53 async def create_inbox_message(self, arg: CreateInboxMessageParams) -> Optional[models.Inbox]: 54 row = (await self._conn.execute(sqlalchemy.text(CREATE_INBOX_MESSAGE), { 55 "p1": arg.user_id, 56 "p2": arg.sender_id, 57 "p3": arg.message_subject, 58 "p4": arg.message_text, 59 })).first() 60 if row is None: 61 return None 62 return models.Inbox( 63 message_id=row[0], 64 user_id=row[1], 65 sender_id=row[2], 66 message_subject=row[3], 67 message_text=row[4], 68 sent_at=row[5], 69 read_status=row[6], 70 )
72 async def delete_inbox_message(self, *, message_id: int) -> Optional[models.Inbox]: 73 row = (await self._conn.execute(sqlalchemy.text(DELETE_INBOX_MESSAGE), {"p1": message_id})).first() 74 if row is None: 75 return None 76 return models.Inbox( 77 message_id=row[0], 78 user_id=row[1], 79 sender_id=row[2], 80 message_subject=row[3], 81 message_text=row[4], 82 sent_at=row[5], 83 read_status=row[6], 84 )
86 async def get_inboxes(self) -> AsyncIterator[models.Inbox]: 87 result = await self._conn.stream(sqlalchemy.text(GET_INBOXES)) 88 async for row in result: 89 yield models.Inbox( 90 message_id=row[0], 91 user_id=row[1], 92 sender_id=row[2], 93 message_subject=row[3], 94 message_text=row[4], 95 sent_at=row[5], 96 read_status=row[6], 97 )
99 async def get_user_inbox(self, *, user_id: int) -> AsyncIterator[models.Inbox]: 100 result = await self._conn.stream(sqlalchemy.text(GET_USER_INBOX), {"p1": user_id}) 101 async for row in result: 102 yield models.Inbox( 103 message_id=row[0], 104 user_id=row[1], 105 sender_id=row[2], 106 message_subject=row[3], 107 message_text=row[4], 108 sent_at=row[5], 109 read_status=row[6], 110 )