package com.example.tampopo_client.resources;

import com.example.tampopo_client.models.ChatMessage;
import com.example.tampopo_client.models.Chatroom;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface ChatroomResource {

    //チャットルームに入る
    @POST("chat-rooms")
    Call<Chatroom> enterChatroom(
            @Query("user0-id") String myId,
            @Query("user1-id") String partnerId,
            @Query("token") String token
    );
    //チャットルームを探す
    @GET("chat-rooms")
    Call<Chatroom> getMyChatroom(
            @Query("user0-id") String userId,
            @Query("token") String token
    );

    // メッセージを閲覧する
    @GET("chat-rooms/{chat-room-id}/{user-id}")
    Call<List<ChatMessage>> getMessages(
            @Path("chat-room-id") String chatRoomId,
            @Path("user-id") String userId,
            @Query("token") String token
    );

    // チャットルームの削除
    @DELETE("chat-rooms/{chatroom-id}/{user-id}")
    Call<Void> destroyChatroom(
            @Path("chatroom-id") String chatRoomId,
            @Path("user-id") String userId,
            @Query("token") String token
    );

    //チャットルームにユーザーを追加する
    @PUT("chat-rooms/{chatroom-id}/{user-id}")
    Call<Chatroom> addChatRoomUser(
            @Path("chatroom-id") String chatRoomId,
            @Path("user-id") String userId,
            @Query("token") String token
    );


    //チャットルームにメッセージを追加する
    @POST("chat-rooms/{chatroom-id}/{user-id}/message")
    @FormUrlEncoded
    Call<ChatMessage> sendMessage(
            @Path("chatroom-id") String chatRoomId,
            @Path("user-id") String senderId,
            @Field("message") String message,
            @Query("token") String token
    );

}
