package shared type BaseErrorResponse struct { Success bool `json:"success"` Code int `json:"code"` Message string `json:"message"` Errors []string `json:"errors"` } type BaseResponse[T any] struct { Success bool `json:"success"` Code int `json:"code"` Message string `json:"message"` Data T `json:"data" swaggertype:"object"` } type BaseResponsePaginate[T any] struct { Success bool `json:"success"` Code int `json:"code"` Message string `json:"message"` Data []T `json:"data" swaggertype:"array"` Paginate PaginationInfo } func ToBaseResponse[T any](data T, isSuccess bool, code int, message string) BaseResponse[T] { return BaseResponse[T]{ Success: true, Code: 200, Message: message, Data: data, } } func ToBaseResponsePaginate[T any](data []T, paginate PaginationInfo, isSuccess bool, code int, message string) BaseResponsePaginate[T] { if len(data) == 0 { data = make([]T, 0) } return BaseResponsePaginate[T]{ Success: true, Code: 200, Message: message, Data: data, Paginate: paginate, } }