syntax = "v1"

// 文件與實際 HTTP 回應共用結構（handler 透過 response.Write 輸出）
// HTTP 狀態碼對照 errs.Error.HTTPStatus()（internal/library/errors/errors.go）
// 業務碼格式 SSCCCDDD（scope * 1_000_000 + category * 1_000 + detail）
// Facade scope=10（handler parse/validate）：10101000 = InputInvalidFormat
// Auth scope=28、Member scope=29、Notification scope=30：各模組 logic/usecase 使用對應 scope
type (
	// ErrorDetail 失敗時 error 欄位
	ErrorDetail {
		BizCode  string `json:"biz_code"`
		Scope    uint32 `json:"scope,omitempty"`
		Category uint32 `json:"category,omitempty"`
		Detail   uint32 `json:"detail,omitempty"`
	}

	// APIErrorStatus 失敗回應 envelope（HTTP 4xx/5xx）
	APIErrorStatus {
		Code    int64       `json:"code"`
		Message string      `json:"message"`
		Error   ErrorDetail `json:"error"`
	}

	// EmptyOKStatus 成功但無 data（confirm / delete 等；code=102000）
	EmptyOKStatus {
		Code    int64  `json:"code"`
		Message string `json:"message"`
	}
)
