package com.nebula.erp.sales.utility;

import lombok.Getter;
import lombok.Setter;

import java.time.Instant;

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

    // Updated constructor to accept dynamic status code
    public ApiResponseStructure(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 final int code;
        private final String details;
        private final String timestamp;

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