package com.notifyhub.viewer.data.remote import retrofit2.Response import retrofit2.http.Body import retrofit2.http.DELETE import retrofit2.http.GET import retrofit2.http.POST import retrofit2.http.Path import retrofit2.http.Query interface NotizApi { @POST("login") suspend fun login(@Body request: LoginRequest): Response @POST("two-factor/verify") suspend fun verifyTwoFactor(@Body request: TwoFactorVerifyRequest): Response @POST("two-factor/resend") suspend fun resendTwoFactor(@Body request: TwoFactorResendRequest): Response> @POST("logout") suspend fun logout(): Response> @GET("me") suspend fun profile(): Response @GET("me/stats") suspend fun stats(): Response @GET("me/messages") suspend fun messages( @Query("page") page: Int = 1, @Query("per_page") perPage: Int = 25, @Query("sender") sender: String? = null, @Query("keyword") keyword: String? = null, @Query("date_from") dateFrom: String? = null, @Query("date_to") dateTo: String? = null, ): Response @GET("me/messages/{id}") suspend fun message(@Path("id") id: Int): Response @GET("me/alerts") suspend fun alerts(): Response> @POST("me/alerts/{id}/read") suspend fun markAlertRead(@Path("id") id: Int): Response @POST("me/alerts/read-all") suspend fun markAllAlertsRead(): Response> @POST("me/push-tokens") suspend fun registerPushToken(@Body request: PushTokenRequest): Response> @DELETE("me/push-tokens") suspend fun unregisterPushToken(@Query("token") token: String): Response> }