package response

type Common struct {
	Code    int    `json:"code"`
	Status  string `json:"status"`
	Message string `json:"message"`
}

type Success struct {
	Code    int         `json:"code"`
	Status  string      `json:"status"`
	Message string      `json:"message"`
	Data    interface{} `json:"data"`
}

type Meta struct {
	Page         int         `json:"page"`
	Limit        int         `json:"limit"`
	TotalPages   int64       `json:"total_pages"`
	TotalResults int64       `json:"total_results"`
	Filters      interface{} `json:"filters,omitempty"`
}

type SuccessWithPaginate[T any] struct {
	Code    int    `json:"code"`
	Status  string `json:"status"`
	Message string `json:"message"`
	Meta    Meta   `json:"meta"`
	Data    []T    `json:"data"`
}

type SuccessWithMeta struct {
	Code    int         `json:"code"`
	Status  string      `json:"status"`
	Message string      `json:"message"`
	Meta    Meta        `json:"meta"`
	Data    interface{} `json:"data"`
}

type ErrorDetails struct {
	Code    int         `json:"code"`
	Status  string      `json:"status"`
	Message string      `json:"message"`
	Errors  interface{} `json:"errors"`
}
