package com.caliverse.admin.domain.response;

import com.caliverse.admin.domain.entity.LandAuction;
import com.caliverse.admin.domain.entity.LandInfo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LandResponse {
    private int status;

    private String result;
    @JsonProperty("data")
    private ResultData resultData;

    @Data
    @Builder
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class ResultData {

        @JsonProperty("auction_detail")
        private LandAuction auction;

        @JsonProperty("auction_list")
        private List<LandAuction> auctionList;

        @JsonProperty("building_list")
        private List<Building> buildingList;

        @JsonProperty("land_info_list")
        private List<LandInfo> landInfoList;

        private String message;
        @JsonProperty("land_list")
        private List<Land> landList;
        private Layer layer;

        private int total;
        @JsonProperty("total_all")
        private int totalAll;
        @JsonProperty("page_no")
        private int pageNo;

    }
    @Data
    @Builder
    public static class Land {
        private Integer id;
        private String name;
        private String owner;
        private Integer editor;
        private boolean nonAuction;
        private String desc;
        private String size;
        private String type;
        private Integer socket;
        private Integer buildingId;
    }
    @Data
    @Builder
    public static class Building{
        private Integer id;
        private String name;
        private boolean open;
        private String owner;
        private String desc;
        private String size;
        private Integer socket;
    }
    @Data
    @Builder
    public static class Layer{
        private Long id;
        @JsonProperty("layer_info")
        private String layerInfo;
    }

}
