package com.nebula.erp.product.utility;

import lombok.Getter;
import lombok.Setter;
import java.time.Instant;

@Getter
@Setter
public class ApiResponse<T> {
    private String status;
    private Meta meta;
    private T data;

    // Updated constructor to accept dynamic status code
    public ApiResponse(String status, int code, String details, T data) {
        this.status = status;
        this.meta = new Meta(code, details, Instant.now().toString());
        this.data = data;
    }

    // Inner class for Meta information
    @Getter
    @Setter
    public static class Meta {
        private int code;
        private String details;
        private String timestamp;

        public Meta(int code, String details, String timestamp) {
            this.code = code;
            this.details = details;
            this.timestamp = timestamp;
        }
    }
}