User Operations

User management operations.

async shared.database.operations.user.check_user_can_create_task(user)[source]

Check if user can create a new task based on limits.

Parameters:

user (User) – User instance

Return type:

Tuple[bool, str]

Returns:

Tuple of (can_create: bool, reason: str)

async shared.database.operations.user.get_or_create_user(telegram_id, username=None, first_name=None, last_name=None)[source]

Get user by telegram_id or create new user with default free plan.

Parameters:
  • telegram_id (int) – Telegram user ID

  • username (Optional[str]) – Telegram username (optional)

  • first_name (Optional[str]) – User’s first name (optional)

  • last_name (Optional[str]) – User’s last name (optional)

Return type:

User

Returns:

User instance

async shared.database.operations.user.reset_daily_counters_if_needed(user)[source]

Reset daily counters if a day has passed.

Parameters:

user (User) – User instance

Return type:

User

Returns:

Updated user instance

async shared.database.operations.user.upgrade_user_plan(telegram_id, plan, expires_at=None)[source]

Upgrade user plan and adjust limits.

Parameters:
  • telegram_id (int) – Telegram user ID

  • plan (UserPlan) – New plan type

  • expires_at (Optional[datetime]) – Plan expiration date (for premium)

Return type:

bool

Returns:

True if upgraded successfully, False if user not found