← EP21 Internal Docs Podpora21.cz
Solution Design · DS-0001 · v0.1.0

Podpora21 — System Overview

proposed Authors: david.sorf, claude-sonnet-4-6 Created: 2026-04-09 Updated: 2026-04-09
system-overview helpdesk ep21 podpora21
Podpora21.cz je zákaznická podpora a servis klientů EP21. Shromažďuje požadavky klientů i studentů, řeší helpdesk tickety, sleduje SLA a poskytuje agentem řízený servis existujících klientů. Je součástí EP21 ekosystému, konzumuje data z Firma21 (smlouvy, klienti, support coverage) a napájí TEK task engine. Postaven na PHP 8.3 / Nette 3 / PostgreSQL 16 / Docker.

System Context Diagram

📊 Diagram: design/diagrams/podpora21-system-context.png

Architecture Overview Diagram

📊 Diagram: design/diagrams/podpora21-architecture-overview.png

System Context

Podpora21.cz je dedikovaná aplikace zákaznické podpory v EP21 ekosystému.

Problem: Klientské a studentské požadavky na EP21 služby jsou nestrukturované, bez SLA trackovení a bez formálního helpdesk procesu.

Solution boundary:

Podpora21 je konzumentem dat z Firma21 (CustomerAccount, SupportCoverage) a vystaví support historii jako event log do TEK/AMQP pro ostatní EP21 systémy.

Actors & External Systems

Actor / SystemTypRole

Klient

Human / External

Podává tickety, odpovídá na dotazy agenta, sleduje status

Student

Human / External

Podává tickety k kurzům, přístupu, platbám

Support Agent

Human / Internal

Řeší tickety, přidává komentáře, mění status, přiřazuje

Support Admin

Human / Internal

Spravuje kategorie, SLA politiky, uživatele, reporty

Firma21

System / EP21

SoT pro CustomerAccount, Contract, SupportCoverage — podpora21 čte

Projekty21

System / EP21

SoT pro projekt data — cross-reference pro enterprise klienty

TEK / AMQP

System / EP21

Distribuovaný task engine — podpora21 publikuje events, konzumuje TEK tasky

Tracy / Error Registry

System / Internal

Zachytává PHP výjimky → error remediation pipeline

Keycloak

System / Auth

SSO autentizace pro agenty a adminy (volitelné, profil auth)

Architecture Layers

Aplikace je postavena na Nette MVC architektuře s těmito vrstvami:

1. PRESENTATION (app/Presenters/ + templates/)

2. APPLICATION (app/Service/)

3. DOMAIN (app/Model/)

4. INFRASTRUCTURE

5. CLI / SCRIPTS

Data Flow

Primární tok:

1. Klient nebo agent vytvoří ticket (web form / email)

2. TicketPresenter -> TicketModel.create() -> support_ticket INSERT

3. SLA policy přiřazena automaticky podle priority

4. Agent vidí ticket v dashboardu, přidá komentář -> support_ticket_comment

5. Každá změna statusu / přiřazení -> support_ticket_history (audit log)

6. TEK bridge publikuje events do AMQP při klíčových změnách (volitelné)

Integrační tok (Firma21):

Key Data Structure

app/
  Presenters/
    TicketPresenter.php        # dashboard, list, detail, new, reply, changeStatus
    BasePresenter.php
    BasePresenterSecure.php
  Model/
    TicketModel.php            # support_ticket, _comment, _history CRUD
    BaseModel.php
  Service/
  config/
    common.neon, services.neon, rabbit.neon

phinx/
  phinx-podpora21.php
  db/podpora21_migrations/
    20260408100000_helpdesk_initial.php   # 6 helpdesk tabulek + seed

design/
  .dak/kit.json
  docs/  adr/  output/

meta/tasks/  meta/errors/  meta/url-catalog/
scripts/tasks.py  scripts/error_registry_*.py

Deployment Model

Local dev: Docker Compose (web + postgres + rabbitmq)

APP_PORT=8080, CONTROL_PORT=9021, POSTGRES_PORT=15432

DB: podpora21 / user: podpora21 / schema: podpora21

Produkce: Docker na EP21 infra (stejný image, ENV_INST=prod)

Remote: ssh://git@gitssh.ep21.cz:2222/app/core/app-podpora21.git

Klíčové ENV: POSTGRES_DB, DB_SCHEMA, NETTE_DEBUG, ENV_INST, AMQP_URL

Security Model

Observability

Roadmap & Known Gaps

ADR Index

IDNázevStatusPoznámka

ADR-001

RBAC Capability Foundation

accepted

Platí beze změny

ADR-002

RBAC Admin UI + Keycloak Integration

accepted

Platí beze změny

ADR-003

EP21 Ecosystem Landscape + Bounded Contexts

proposed

Podpora21 = bounded context

ADR-004

EP21 Source of Truth + Data Ownership Policy

proposed

Podpora21 = SoT pro support data

ADR-005

EP21 Provisioning Orchestration

proposed

Diskutabilní — závisí na Firma21 integraci

ADR-007

EP21 API Strategy + DAV Facade Gates

proposed

Platí

ADR-008

EP21 ADR Governance Wrapper + Cross-Project Federation

proposed

Platí

ADR-009

TEK Distribution Kit

accepted

TEK aktivní

ADR-010

TEK SoT Cutover

accepted

Adaptovat: podpora21 jako nový SoT

ADR-011

TEK Agent Bridge Transport

accepted

Bridge aktivní

ADR-012

TEK Standalone Bootstrap Protocol

accepted

Bootstrapped 2026-04-09

ADR-00XZ

Tenant RBAC Model

accepted

Platí

ADR-00YA

Tenant Access/Audit Log

accepted

Platí

ADR-Coding-Policy

Coding Policy & Best Practices

accepted

Platí

ADR-Shared-App-Layer

Shared Application Layer CLI/UI/API

accepted

Platí

ADR-Console-Cmd

Console Command Architecture

accepted

Platí

ADR-Python-Bridge

Python Bridge Migration Strategy

accepted

Platí

ADR-TEK-DB-Sync

TEK Targets DB Sync

accepted

Platí

ADR-Error-Remediation

Error Remediation Engine (adaptovat z Projekty21)

accepted

Přejmenovat na Podpora21

ADR-Metadata-Snapshot

Metadata Snapshot Versioning (adaptovat)

accepted

Přejmenovat na Podpora21

ADR-EP21-Task-Hygiene

EP21 Task Hygiene Policy

accepted

Platí

ADR-EP21-Review-Standards

EP21 Review Standards

accepted

Platí

ADR-Firma21-Baseline

Firma21 Architecture Baseline

accepted

Referenční kontext pro integraci

ADR-User-Docs-IA

User Documentation IA

accepted

Platí

Changelog

VersionDateAuthorNote
0.1.02026-04-09david.sorf + claude-sonnet-4-6

Initial draft. System context, actors, architecture layers, deployment model, ADR index. Diagrams planned.