2.1: GET /admin/persons — Person lista endpoint #309
Notifications
Total Time Spent: 4 minutes
kincses
4 minutes
No due date set.
Dependencies
No dependencies set.
Reference: kincses/service-finder#309
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mérföldkő: Admin User & Person Management
Cél: Person entitások listázása kereséssel, szűréssel. Paraméterek: search (name, phone, birth data), is_ghost, is_active, has_user, is_merged, skip, limit. Válasz: total, items (id, last_name, first_name, phone, birth_date, is_ghost, is_active, merged_into_id, users_count, active_user, address).
🔗 Függőségek (Dependencies)
📝 Elemzés
Új GET /admin/persons endpoint. SQL: LEFT JOIN identity.users ON person_id (users_count, active_user), LEFT JOIN identity.addresses ON address_id. Szűrés: WHERE is_ghost, is_active, merged_into_id IS NULL/IS NOT NULL.
▶️ Munka megkezdve: 2026-06-29 04:22:31
✅ Munka befejezve: 2026-06-29 04:27:01
Technikai Összefoglaló:
EPIC-2 Task 2.1: GET /admin/persons — Person lista endpoint implementálva. Létrehozva: backend/app/api/v1/endpoints/admin_persons.py (PersonListItemActiveUser, PersonListItem, PersonListResponse Pydantic modellek). Módosítva: backend/app/api/v1/api.py (router regisztráció). Támogatott szűrők: search, is_ghost, is_active, has_user, is_merged, skip, limit. Jogosultság: RequirePermission('persons:view'). N+1 védelem batch user query-vel. Sync Engine: ✅ 1279 OK.
⏱️ Az idő rögzítve.
✅ Gitea #309 — EPIC-2 Task 2.1: GET /admin/persons — Kész
Létrehozott fájlok
backend/app/api/v1/endpoints/admin_persons.py— Teljes Person lista végpontMódosított fájlok
backend/app/api/v1/api.py—admin_personsrouter regisztráció (/admin/personsprefix)Végpont részletei
GET/api/v1/admin/personsTámogatott paraméterek
search— Keresés név (last_name,first_name) vagy telefonszám alapján (ILIKE)is_ghost— Szűrés ghost státusz szerintis_active— Szűrés aktív/inaktív szerinthas_user— Szűrés aszerint, hogy van-e kapcsolódó Useris_merged— Szűrés merge státusz szerintskip,limit— Lapozás (max 200)Válasz struktúra
Technikai részletek
RequirePermission("persons:view")— a spec 5.8-as szekciója szerintusers_map) ajoinedload(Person.users)mellettjoinedload(Person.address)— eager loading/api/v1/admin/persons), permission check működik (403 ha nincspersons:view)Gitea státusz
.roo/history.md