diff --git a/frontend/src/lib/api-types.ts b/frontend/src/lib/api-types.ts index 258bdbf0..46de747e 100644 --- a/frontend/src/lib/api-types.ts +++ b/frontend/src/lib/api-types.ts @@ -2443,6 +2443,86 @@ export interface paths { patch?: never; trace?: never; }; + "/api/v1/admin/etl/mapping-review": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Mapping Review + * @description Список строк objective_complex_mapping + обогащение для ревьюера. + * + * Обогащение каждой строки: + * - domrf_comm_name / domrf_dev_name — latest snapshot по domrf_obj_id; + * - objective_developers — застройщики objective-проекта (агрегат + * objective_lots.developer, scoped по project_name). + * + * Сорт: is_reviewed asc, match_score asc NULLS FIRST (сомнительные сверху). + * + * Returns dict: + * rows: list обогащённых строк (id, objective_complex_name, + * objective_project_id, objective_group, domrf_obj_id, match_method, + * match_score, is_reviewed, note, created_at, domrf_comm_name, + * domrf_dev_name, objective_developers); + * total: всего строк (с учётом only_unreviewed, БЕЗ limit/offset); + * limit / offset / only_unreviewed: эхо параметров. + */ + get: operations["get_mapping_review_api_v1_admin_etl_mapping_review_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/admin/etl/mapping-review/{mapping_id}/approve": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Approve Mapping Review + * @description Подтвердить маппинг: is_reviewed=true + append «approved » в note. + * + * 404 если строки с таким id нет. + */ + post: operations["approve_mapping_review_api_v1_admin_etl_mapping_review__mapping_id__approve_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/admin/etl/mapping-review/{mapping_id}/reject": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Reject Mapping Review + * @description Отклонить маппинг — DELETE строки (иначе травит mv_layout_velocity §4.2). + * + * Удаляемая строка целиком логируется (logger.info) перед commit — в note + * писать некуда, строки не будет. 404 если id не найден. + */ + post: operations["reject_mapping_review_api_v1_admin_etl_mapping_review__mapping_id__reject_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/api/v1/trade-in/estimate": { parameters: { query?: never; @@ -9191,6 +9271,110 @@ export interface operations { }; }; }; + get_mapping_review_api_v1_admin_etl_mapping_review_get: { + parameters: { + query?: { + /** @description Только is_reviewed=false (авто-матчи без ревью) */ + only_unreviewed?: boolean; + /** @description Строк на странице */ + limit?: number; + /** @description Смещение страницы */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + approve_mapping_review_api_v1_admin_etl_mapping_review__mapping_id__approve_post: { + parameters: { + query?: never; + header?: never; + path: { + mapping_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + reject_mapping_review_api_v1_admin_etl_mapping_review__mapping_id__reject_post: { + parameters: { + query?: never; + header?: never; + path: { + mapping_id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; estimate_api_v1_trade_in_estimate_post: { parameters: { query?: never;