reminder ¶
User reminder scheduling controller.
This controller manages scheduled reminders for Discord users, allowing them to set timed notifications and messages to be delivered at specified times.
Classes:
-
ReminderController–Clean Reminder controller using the new BaseController pattern.
Classes¶
ReminderController ¶
ReminderController(db: DatabaseService | None = None)
Bases: BaseController[Reminder]
Clean Reminder controller using the new BaseController pattern.
Initialize the reminder controller.
Parameters:
-
db(DatabaseService | None, default:None) –The database service instance. If None, uses the default service.
Methods:
-
get_reminder_by_id–Get a reminder by its ID.
-
get_reminders_by_user–Get all reminders for a specific user in a guild.
-
get_reminders_by_guild–Get all reminders in a guild.
-
create_reminder–Create a new reminder.
-
update_reminder–Update a reminder by ID.
-
delete_reminder–Delete a reminder by ID.
-
get_expired_reminders–Get all expired reminders.
-
get_active_reminders–Get all active (non-expired) reminders in a guild.
-
get_reminders_by_channel–Get all reminders for a specific channel.
-
get_reminder_count_by_user–Get the number of reminders for a user in a guild.
-
get_reminder_count_by_guild–Get the total number of reminders in a guild.
-
create–Create a new record.
-
delete_reminder_by_id–Delete a reminder by its ID.
-
get_by_id–Get a record by ID.
-
get_all_reminders–Get all reminders in a guild.
-
update_by_id–Update a record by ID.
-
insert_reminder–Insert a new reminder - alias for create.
-
delete_by_id–Delete a record by ID.
-
cleanup_expired_reminders–Delete all expired reminders and return the count.
-
exists–Check if a record exists.
-
find_one–Find one record.
-
find_all–Find all records with performance optimizations.
-
find_all_with_options–Find all records with relationship loading options.
-
count–Count records.
-
get_all–Get all records (alias for find_all without pagination).
-
execute_query–Execute a custom query.
-
find_with_json_query–Find records using JSON column queries.
-
find_with_array_contains–Find records where array column contains value.
-
find_with_full_text_search–Find records using full-text search.
-
paginate–Paginate records with metadata.
-
find_paginated–Find paginated records with relationship loading.
-
bulk_create–Create multiple records in bulk.
-
bulk_update–Update multiple records in bulk.
-
bulk_delete–Delete multiple records in bulk.
-
update_where–Update records matching filters.
-
delete_where–Delete records matching filters.
-
bulk_upsert_with_conflict_resolution–Bulk upsert with conflict resolution.
-
with_session–Execute operation within a session context.
-
with_transaction–Execute operation within a transaction context.
-
execute_transaction–Execute a callback within a transaction.
-
get_table_statistics–Get comprehensive table statistics.
-
explain_query_performance–Explain query performance with optional analysis.
-
upsert_by_field–Upsert a record by a specific field.
-
upsert_by_id–Upsert a record by ID.
-
get_or_create_by_field–Get existing record or create new one by field.
-
get_or_create–Get existing record or create new one.
-
upsert–Upsert a record.
Attributes:
-
db_service(DatabaseService) –Database service property for test compatibility.
-
model_class(type[ModelT]) –Model class property for test compatibility.
Attributes¶
db_service property ¶
db_service: DatabaseService
Database service property for test compatibility.
Returns:
-
DatabaseService–The database service instance.
Functions¶
get_reminder_by_id async ¶
get_reminders_by_user async ¶
get_reminders_by_guild async ¶
create_reminder async ¶
update_reminder async ¶
_get_pagination ¶
_get_pagination() -> PaginationController[ModelT]
Get or create pagination controller.
Returns:
-
PaginationController[ModelT]–The pagination controller instance.
delete_reminder async ¶
_get_bulk ¶
_get_bulk() -> BulkOperationsController[ModelT]
Get or create bulk operations controller.
Returns:
-
BulkOperationsController[ModelT]–The bulk operations controller instance.
get_expired_reminders async ¶
_get_transaction ¶
_get_transaction() -> TransactionController[ModelT]
Get or create transaction controller.
Returns:
-
TransactionController[ModelT]–The transaction controller instance.
get_active_reminders async ¶
_get_performance ¶
_get_performance() -> PerformanceController[ModelT]
Get or create performance controller.
Returns:
-
PerformanceController[ModelT]–The performance controller instance.
get_reminders_by_channel async ¶
_get_upsert ¶
_get_upsert() -> UpsertController[ModelT]
Get or create upsert controller.
Returns:
-
UpsertController[ModelT]–The upsert controller instance.
get_reminder_count_by_user async ¶
Get the number of reminders for a user in a guild.
Returns:
-
int–The count of reminders for the user.
get_reminder_count_by_guild async ¶
Get the total number of reminders in a guild.
Returns:
-
int–The total count of reminders in the guild.
create async ¶
create(**kwargs: Any) -> ModelT
Create a new record.
Returns:
-
ModelT–The newly created record.
delete_reminder_by_id async ¶
get_by_id async ¶
get_by_id(record_id: Any) -> ModelT | None
Get a record by ID.
Returns:
-
ModelT | None–The record if found, None otherwise.
get_all_reminders async ¶
update_by_id async ¶
Update a record by ID.
Returns:
-
ModelT | None–The updated record, or None if not found.
insert_reminder async ¶
delete_by_id async ¶
cleanup_expired_reminders async ¶
cleanup_expired_reminders() -> int
Delete all expired reminders and return the count.
Returns:
-
int–The number of reminders that were deleted.
exists async ¶
find_one async ¶
Find one record.
Returns:
-
ModelT | None–The found record, or None if not found.
find_all async ¶
find_all_with_options async ¶
find_all_with_options(
filters: Any | None = None,
order_by: Any | None = None,
limit: int | None = None,
offset: int | None = None,
load_relationships: list[str] | None = None,
) -> list[ModelT]
Find all records with relationship loading options.
Returns:
-
list[ModelT]–List of found records with loaded relationships.
count async ¶
get_all async ¶
Get all records (alias for find_all without pagination).
Returns:
-
list[ModelT]–List of all matching records.
execute_query async ¶
find_with_json_query async ¶
find_with_json_query(
json_column: str, json_path: str, value: Any, filters: Any | None = None
) -> list[ModelT]
Find records using JSON column queries.
Returns:
-
list[ModelT]–List of records matching the JSON query.
find_with_array_contains async ¶
find_with_array_contains(
array_column: str, value: Any, filters: Any | None = None
) -> list[ModelT]
Find records where array column contains value.
Returns:
-
list[ModelT]–List of records with matching array values.
find_with_full_text_search async ¶
find_with_full_text_search(
search_columns: list[str], search_term: str, filters: Any | None = None
) -> list[ModelT]
Find records using full-text search.
Returns:
-
list[ModelT]–List of records matching the search term.
paginate async ¶
paginate(
page: int = 1,
per_page: int = 20,
filters: Any | None = None,
order_by: Any | None = None,
) -> PaginationResult[ModelT]
Paginate records with metadata.
Returns:
-
PaginationResult[ModelT]–Pagination result with items, total, and page info.
find_paginated async ¶
find_paginated(
page: int = 1,
per_page: int = 20,
filters: Any | None = None,
order_by: Any | None = None,
load_relationships: list[str] | None = None,
) -> PaginationResult[ModelT]
Find paginated records with relationship loading.
Returns:
-
PaginationResult[ModelT]–Pagination result with items and relationships loaded.
bulk_create async ¶
bulk_update async ¶
bulk_delete async ¶
update_where async ¶
delete_where async ¶
bulk_upsert_with_conflict_resolution async ¶
with_session async ¶
Execute operation within a session context.
Returns:
-
R–The result of the operation.
with_transaction async ¶
Execute operation within a transaction context.
Returns:
-
R–The result of the operation.