internal.queries.admin_issue_reports

  1# Code generated by sqlc. DO NOT EDIT.
  2# versions:
  3#   sqlc v1.30.0
  4# source: admin_issue_reports.sql
  5import pydantic
  6from typing import AsyncIterator, Optional
  7
  8import sqlalchemy
  9import sqlalchemy.ext.asyncio
 10
 11from internal.queries import models
 12
 13
 14CREATE_ADMIN_ISSUE_REPORT = """-- name: create_admin_issue_report \\:one
 15INSERT INTO admin_issue_reports (user_id, issue_type, description)
 16VALUES (:p1, :p2, :p3)
 17RETURNING report_id, user_id, issue_type, description, created_at, status
 18"""
 19
 20
 21class CreateAdminIssueReportParams(pydantic.BaseModel):
 22    user_id: int
 23    issue_type: models.AdminIssueType
 24    description: str
 25
 26
 27DELETE_ADMIN_ISSUE_REPORT = """-- name: delete_admin_issue_report \\:one
 28DELETE FROM admin_issue_reports
 29WHERE report_id = :p1
 30RETURNING report_id, user_id, issue_type, description, created_at, status
 31"""
 32
 33
 34GET_ADMIN_ISSUE_REPORTS = """-- name: get_admin_issue_reports \\:many
 35SELECT report_id, user_id, issue_type, description, created_at, status FROM admin_issue_reports
 36"""
 37
 38
 39GET_ADMIN_ISSUE_REPORTS_BY_USER = """-- name: get_admin_issue_reports_by_user \\:many
 40SELECT report_id, user_id, issue_type, description, created_at, status FROM admin_issue_reports
 41WHERE user_id = :p1
 42"""
 43
 44
 45UPDATE_ADMIN_ISSUE_REPORT_STATUS = """-- name: update_admin_issue_report_status \\:one
 46UPDATE admin_issue_reports
 47SET status = :p2
 48WHERE report_id = :p1
 49RETURNING report_id, user_id, issue_type, description, created_at, status
 50"""
 51
 52
 53class UpdateAdminIssueReportStatusParams(pydantic.BaseModel):
 54    report_id: int
 55    status: models.IssueStatus
 56
 57
 58class AsyncQuerier:
 59    def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection):
 60        self._conn = conn
 61
 62    async def create_admin_issue_report(self, arg: CreateAdminIssueReportParams) -> Optional[models.AdminIssueReport]:
 63        row = (await self._conn.execute(sqlalchemy.text(CREATE_ADMIN_ISSUE_REPORT), {"p1": arg.user_id, "p2": arg.issue_type, "p3": arg.description})).first()
 64        if row is None:
 65            return None
 66        return models.AdminIssueReport(
 67            report_id=row[0],
 68            user_id=row[1],
 69            issue_type=row[2],
 70            description=row[3],
 71            created_at=row[4],
 72            status=row[5],
 73        )
 74
 75    async def delete_admin_issue_report(self, *, report_id: int) -> Optional[models.AdminIssueReport]:
 76        row = (await self._conn.execute(sqlalchemy.text(DELETE_ADMIN_ISSUE_REPORT), {"p1": report_id})).first()
 77        if row is None:
 78            return None
 79        return models.AdminIssueReport(
 80            report_id=row[0],
 81            user_id=row[1],
 82            issue_type=row[2],
 83            description=row[3],
 84            created_at=row[4],
 85            status=row[5],
 86        )
 87
 88    async def get_admin_issue_reports(self) -> AsyncIterator[models.AdminIssueReport]:
 89        result = await self._conn.stream(sqlalchemy.text(GET_ADMIN_ISSUE_REPORTS))
 90        async for row in result:
 91            yield models.AdminIssueReport(
 92                report_id=row[0],
 93                user_id=row[1],
 94                issue_type=row[2],
 95                description=row[3],
 96                created_at=row[4],
 97                status=row[5],
 98            )
 99
100    async def get_admin_issue_reports_by_user(self, *, user_id: int) -> AsyncIterator[models.AdminIssueReport]:
101        result = await self._conn.stream(sqlalchemy.text(GET_ADMIN_ISSUE_REPORTS_BY_USER), {"p1": user_id})
102        async for row in result:
103            yield models.AdminIssueReport(
104                report_id=row[0],
105                user_id=row[1],
106                issue_type=row[2],
107                description=row[3],
108                created_at=row[4],
109                status=row[5],
110            )
111
112    async def update_admin_issue_report_status(self, arg: UpdateAdminIssueReportStatusParams) -> Optional[models.AdminIssueReport]:
113        row = (await self._conn.execute(sqlalchemy.text(UPDATE_ADMIN_ISSUE_REPORT_STATUS), {"p1": arg.report_id, "p2": arg.status})).first()
114        if row is None:
115            return None
116        return models.AdminIssueReport(
117            report_id=row[0],
118            user_id=row[1],
119            issue_type=row[2],
120            description=row[3],
121            created_at=row[4],
122            status=row[5],
123        )
CREATE_ADMIN_ISSUE_REPORT = '-- name: create_admin_issue_report \\:one\nINSERT INTO admin_issue_reports (user_id, issue_type, description)\nVALUES (:p1, :p2, :p3)\nRETURNING report_id, user_id, issue_type, description, created_at, status\n'
class CreateAdminIssueReportParams(pydantic.main.BaseModel):
22class CreateAdminIssueReportParams(pydantic.BaseModel):
23    user_id: int
24    issue_type: models.AdminIssueType
25    description: 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__ and Model.__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-core SchemaSerializer used to dump instances of the model.
  • __pydantic_validator__: The pydantic-core SchemaValidator used 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.
user_id: int = PydanticUndefined
issue_type: internal.queries.models.AdminIssueType = PydanticUndefined
description: str = PydanticUndefined
DELETE_ADMIN_ISSUE_REPORT = '-- name: delete_admin_issue_report \\:one\nDELETE FROM admin_issue_reports\nWHERE report_id = :p1\nRETURNING report_id, user_id, issue_type, description, created_at, status\n'
GET_ADMIN_ISSUE_REPORTS = '-- name: get_admin_issue_reports \\:many\nSELECT report_id, user_id, issue_type, description, created_at, status FROM admin_issue_reports\n'
GET_ADMIN_ISSUE_REPORTS_BY_USER = '-- name: get_admin_issue_reports_by_user \\:many\nSELECT report_id, user_id, issue_type, description, created_at, status FROM admin_issue_reports\nWHERE user_id = :p1\n'
UPDATE_ADMIN_ISSUE_REPORT_STATUS = '-- name: update_admin_issue_report_status \\:one\nUPDATE admin_issue_reports\nSET status = :p2\nWHERE report_id = :p1\nRETURNING report_id, user_id, issue_type, description, created_at, status\n'
class UpdateAdminIssueReportStatusParams(pydantic.main.BaseModel):
54class UpdateAdminIssueReportStatusParams(pydantic.BaseModel):
55    report_id: int
56    status: models.IssueStatus

!!! 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__ and Model.__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-core SchemaSerializer used to dump instances of the model.
  • __pydantic_validator__: The pydantic-core SchemaValidator used 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.
report_id: int = PydanticUndefined
status: internal.queries.models.IssueStatus = PydanticUndefined
class AsyncQuerier:
 59class AsyncQuerier:
 60    def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection):
 61        self._conn = conn
 62
 63    async def create_admin_issue_report(self, arg: CreateAdminIssueReportParams) -> Optional[models.AdminIssueReport]:
 64        row = (await self._conn.execute(sqlalchemy.text(CREATE_ADMIN_ISSUE_REPORT), {"p1": arg.user_id, "p2": arg.issue_type, "p3": arg.description})).first()
 65        if row is None:
 66            return None
 67        return models.AdminIssueReport(
 68            report_id=row[0],
 69            user_id=row[1],
 70            issue_type=row[2],
 71            description=row[3],
 72            created_at=row[4],
 73            status=row[5],
 74        )
 75
 76    async def delete_admin_issue_report(self, *, report_id: int) -> Optional[models.AdminIssueReport]:
 77        row = (await self._conn.execute(sqlalchemy.text(DELETE_ADMIN_ISSUE_REPORT), {"p1": report_id})).first()
 78        if row is None:
 79            return None
 80        return models.AdminIssueReport(
 81            report_id=row[0],
 82            user_id=row[1],
 83            issue_type=row[2],
 84            description=row[3],
 85            created_at=row[4],
 86            status=row[5],
 87        )
 88
 89    async def get_admin_issue_reports(self) -> AsyncIterator[models.AdminIssueReport]:
 90        result = await self._conn.stream(sqlalchemy.text(GET_ADMIN_ISSUE_REPORTS))
 91        async for row in result:
 92            yield models.AdminIssueReport(
 93                report_id=row[0],
 94                user_id=row[1],
 95                issue_type=row[2],
 96                description=row[3],
 97                created_at=row[4],
 98                status=row[5],
 99            )
100
101    async def get_admin_issue_reports_by_user(self, *, user_id: int) -> AsyncIterator[models.AdminIssueReport]:
102        result = await self._conn.stream(sqlalchemy.text(GET_ADMIN_ISSUE_REPORTS_BY_USER), {"p1": user_id})
103        async for row in result:
104            yield models.AdminIssueReport(
105                report_id=row[0],
106                user_id=row[1],
107                issue_type=row[2],
108                description=row[3],
109                created_at=row[4],
110                status=row[5],
111            )
112
113    async def update_admin_issue_report_status(self, arg: UpdateAdminIssueReportStatusParams) -> Optional[models.AdminIssueReport]:
114        row = (await self._conn.execute(sqlalchemy.text(UPDATE_ADMIN_ISSUE_REPORT_STATUS), {"p1": arg.report_id, "p2": arg.status})).first()
115        if row is None:
116            return None
117        return models.AdminIssueReport(
118            report_id=row[0],
119            user_id=row[1],
120            issue_type=row[2],
121            description=row[3],
122            created_at=row[4],
123            status=row[5],
124        )
AsyncQuerier(conn: sqlalchemy.ext.asyncio.engine.AsyncConnection)
60    def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection):
61        self._conn = conn
async def create_admin_issue_report( self, arg: CreateAdminIssueReportParams) -> internal.queries.models.AdminIssueReport | None:
63    async def create_admin_issue_report(self, arg: CreateAdminIssueReportParams) -> Optional[models.AdminIssueReport]:
64        row = (await self._conn.execute(sqlalchemy.text(CREATE_ADMIN_ISSUE_REPORT), {"p1": arg.user_id, "p2": arg.issue_type, "p3": arg.description})).first()
65        if row is None:
66            return None
67        return models.AdminIssueReport(
68            report_id=row[0],
69            user_id=row[1],
70            issue_type=row[2],
71            description=row[3],
72            created_at=row[4],
73            status=row[5],
74        )
async def delete_admin_issue_report( self, *, report_id: int) -> internal.queries.models.AdminIssueReport | None:
76    async def delete_admin_issue_report(self, *, report_id: int) -> Optional[models.AdminIssueReport]:
77        row = (await self._conn.execute(sqlalchemy.text(DELETE_ADMIN_ISSUE_REPORT), {"p1": report_id})).first()
78        if row is None:
79            return None
80        return models.AdminIssueReport(
81            report_id=row[0],
82            user_id=row[1],
83            issue_type=row[2],
84            description=row[3],
85            created_at=row[4],
86            status=row[5],
87        )
async def get_admin_issue_reports(self) -> AsyncIterator[internal.queries.models.AdminIssueReport]:
89    async def get_admin_issue_reports(self) -> AsyncIterator[models.AdminIssueReport]:
90        result = await self._conn.stream(sqlalchemy.text(GET_ADMIN_ISSUE_REPORTS))
91        async for row in result:
92            yield models.AdminIssueReport(
93                report_id=row[0],
94                user_id=row[1],
95                issue_type=row[2],
96                description=row[3],
97                created_at=row[4],
98                status=row[5],
99            )
async def get_admin_issue_reports_by_user( self, *, user_id: int) -> AsyncIterator[internal.queries.models.AdminIssueReport]:
101    async def get_admin_issue_reports_by_user(self, *, user_id: int) -> AsyncIterator[models.AdminIssueReport]:
102        result = await self._conn.stream(sqlalchemy.text(GET_ADMIN_ISSUE_REPORTS_BY_USER), {"p1": user_id})
103        async for row in result:
104            yield models.AdminIssueReport(
105                report_id=row[0],
106                user_id=row[1],
107                issue_type=row[2],
108                description=row[3],
109                created_at=row[4],
110                status=row[5],
111            )
async def update_admin_issue_report_status( self, arg: UpdateAdminIssueReportStatusParams) -> internal.queries.models.AdminIssueReport | None:
113    async def update_admin_issue_report_status(self, arg: UpdateAdminIssueReportStatusParams) -> Optional[models.AdminIssueReport]:
114        row = (await self._conn.execute(sqlalchemy.text(UPDATE_ADMIN_ISSUE_REPORT_STATUS), {"p1": arg.report_id, "p2": arg.status})).first()
115        if row is None:
116            return None
117        return models.AdminIssueReport(
118            report_id=row[0],
119            user_id=row[1],
120            issue_type=row[2],
121            description=row[3],
122            created_at=row[4],
123            status=row[5],
124        )