// 请求方法
package com.example.network

import okhttp3.ResponseBody
import retrofit2.Response
import retrofit2.http.*

interface ApiService {

    // GET 示例：/users/{id}
    @GET("users/{id}")
    suspend fun getUser(
        @Path("id") id: String
    ): ApiResponse<User>

    // GET 示例：带查询参数 /users?page=1&pageSize=20
    @GET("users")
    suspend fun getUsers(
        @Query("page") page: Int,
        @Query("pageSize") pageSize: Int
    ): ApiResponse<List<User>>

    // POST JSON 示例：Body 为 JSON：{"username": "...", "password": "..."}
    @POST("auth/login")
    suspend fun login(
        @Body body: LoginRequest
    ): ApiResponse<LoginResponse>

    // POST 表单示例：x-www-form-urlencoded
    @FormUrlEncoded
    @POST("auth/loginForm")
    suspend fun loginForm(
        @Field("username") username: String,
        @Field("password") password: String
    ): ApiResponse<LoginResponse>

    // zip 文件下载（或其它大文件）——必须 @Streaming
    @Streaming
    @GET("files/{fileName}")
    suspend fun downloadZip(
        @Path("fileName") fileName: String   // 比如 "xxx.zip"
    ): Response<ResponseBody>
}
