<?php
declare(strict_types=1);

// Fixed ai_app read-only candidate set. Controllers/services were screened for
// hidden DML and external calls; an HTTP 200 alone is never a pass.
function batch_smoke_routes(): array
{
    $r = static function (string $method, string $path, array $params,
        string $side, string $table, bool $owned): array {
        return ['method' => $method, 'path' => $path, 'params' => $params,
            'source_side' => $side, 'source_table' => $table, 'owned' => $owned];
    };
    return [
        $r('POST', '/api/Setting/aiface', [], 'ai', 'wxapp_setting', false),
        $r('GET', '/api/User/info', [], 'ai', 'user', true),
        $r('GET', '/api/User/assets', [], 'ai', 'user', true),
        $r('POST', '/api/User/zhctInfo', [], 'store', 'user', true),
        $r('POST', '/api/user.Disease/info', [], 'ai', 'user_disease', true),
        $r('POST', '/api/UserMotion/userDaySteps', ['date' => '2026-10-04'],
            'ai', 'user_motion', true),
        $r('POST', '/api/UserMotion/userWeekSteps', ['date' => '2026-10-04'],
            'ai', 'user_motion', true),
        $r('POST', '/api/Sport/all', [], 'ai', 'sport', false),
        $r('GET', '/api/sport.Cate/all', [], 'ai', 'sport_cate', false),
        $r('GET', '/api/sport.Item/all', [], 'ai', 'sport_item', false),
        $r('GET', '/api/sport.Item/grouped', [], 'ai', 'sport_item', false),
        $r('GET', '/api/sport.Item/list', ['page' => 1, 'page_size' => 10],
            'ai', 'sport_item', false),
        $r('GET', '/api/sport.Item/daily', ['date' => '2026-10-04'],
            'ai', 'user_sport_item', true),
        $r('GET', '/api/sport.Item/range', ['start_date' => '2026-09-28',
            'end_date' => '2026-10-04'], 'ai', 'user_sport_item', true),
        $r('GET', '/api/health.Metric/overview', [],
            'ai', 'user_health_metric_record', true),
        $r('GET', '/api/health.Metric/trend', ['metric_code' => 'glucose',
            'start_date' => '2026-09-28', 'end_date' => '2026-10-04'],
            'ai', 'user_health_metric_record', true),
        $r('GET', '/api/health.Metric/records', ['metric_code' => 'glucose',
            'start_date' => '2026-09-28', 'end_date' => '2026-10-04',
            'page' => 1, 'page_size' => 20], 'ai', 'user_health_metric_record', true),
        $r('POST', '/api/Dishes/list', ['type' => 1, 'page' => 1,
            'page_size' => 10], 'ai', 'dishes', false),
        $r('GET', '/api/dishes.Dishes/cate', ['type' => 1],
            'ai', 'dishes_cate', false),
        $r('POST', '/api/Restaurant/list', [], 'store', 'restaurants', false),
        $r('POST', '/api/Restaurant/areaList', [],
            'store', 'restaurant_area', false),
        $r('GET', '/api/Activity/list', ['pagesize' => 10],
            'ai', 'activity', false),
        $r('GET', '/api/ActivityType/list', [],
            'ai', 'activity_type', false),
        $r('POST', '/api/drill.course_type/all', [],
            'ai', 'drill_course_type', false),
        $r('POST', '/api/drill.course/all', [],
            'ai', 'drill_course', false),
        $r('GET', '/api/drill.Course/detailByType', ['type' => 1],
            'ai', 'drill_course', false),
        $r('GET', '/api/drill.Course/progressByType', ['type' => 1],
            'ai', 'drill_course', false),
        $r('GET', '/api/Cashout/list', [], 'ai', 'cashout_order', true),
        $r('GET', '/api/user.Score/weightRank', [], 'ai', 'user_score', false),
        $r('GET', '/api/user.Score/dietRank', [], 'ai', 'user_score', false),
        $r('GET', '/api/user.Score/courseRank', [], 'ai', 'user_score', false),
    ];
}
