package entity type Message string const ( ErrDownloadFile Message = "download file failed" ErrUploadFile Message = "upload file failed" ErrDeleteFile Message = "delete file failed" ErrRenameFile Message = "rename file failed" ErrCopyFile Message = "copy file failed" ErrInfoFile Message = "info file failed" ) const ( ErrMkDir Message = "make directory failed" ErrListDir Message = "list directory failed" ErrDeleteDir Message = "delete directory failed" ErrRenameDir Message = "rename directory failed" ErrCopyDir Message = "copy directory failed" ) const ( Success Message = "success" ) type Status int const ( CodeSuccess Status = 0 // success code CodeBadRequest Status = 60004 // bad request code CodeInternalServer Status = 60005 // internal server code ) type Response[T any] struct { Status Status `json:"status"` // Status code Message Message `json:"message"` // Response message for i18n Data T `json:"data,omitempty"` // Response data Extra map[string]interface{} `json:"extra,omitempty"` // Extra information for error details } func NewSuccess[T any](data T) *Response[T] { return &Response[T]{ Status: CodeSuccess, Message: Success, Data: data, } } func NewError[T any](status Status, message Message, extra map[string]interface{}) *Response[T] { return &Response[T]{ Status: status, Message: message, Extra: extra, } }