feat(telegram): bot bonuri fiscale — OCR → preview → Oracle write

- US-001: mută queue_client.py în data_entry/services/ocr/
- US-002/003/004: oracle_receipt_writer + oracle_server_id în DB
- US-005: receipt_handlers.py (PDF/photo/callback flow)
- US-006: wire handlers în main.py, per-schema connect, seq_cod.nextval
- US-007: .gitignore secrets/*.oracle_pass
- US-008/009/010: teste unit + integration + E2E
- setup-secrets.sh helper + template
- docs/telegram/README.md actualizat cu arhitectura nouă

Testat E2E pe DB live (MARIUSM_AUTO). COD din seq_cod.nextval.
pypdfium2 fallback pentru PDF decode (fără poppler).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 09:26:58 +00:00
parent 8234103884
commit e257fa5d5f
35 changed files with 4531 additions and 227 deletions

View File

@@ -100,7 +100,8 @@ async def link_user_to_oracle(
oracle_username: str,
jwt_token: str,
jwt_refresh_token: str,
token_expires_at: datetime
token_expires_at: datetime,
server_id: Optional[str] = None
) -> bool:
"""
Link a Telegram user to an Oracle account and save JWT tokens.
@@ -111,6 +112,7 @@ async def link_user_to_oracle(
jwt_token: JWT access token
jwt_refresh_token: JWT refresh token
token_expires_at: Token expiration timestamp
server_id: Oracle server ID for multi-server mode
Returns:
bool: True if successful
@@ -122,6 +124,7 @@ async def link_user_to_oracle(
await db.execute("""
UPDATE telegram_users
SET oracle_username = ?,
oracle_server_id = ?,
jwt_token = ?,
jwt_refresh_token = ?,
token_expires_at = ?,
@@ -130,6 +133,7 @@ async def link_user_to_oracle(
WHERE telegram_user_id = ?
""", (
oracle_username,
server_id,
jwt_token,
jwt_refresh_token,
token_expires_at,
@@ -138,7 +142,7 @@ async def link_user_to_oracle(
))
await db.commit()
logger.info(f"User {telegram_user_id} linked to Oracle user {oracle_username}")
logger.info(f"User {telegram_user_id} linked to Oracle user {oracle_username} (server_id={server_id})")
return True
except Exception as e: