feat: add feedback backend foundation

This commit is contained in:
2026-04-30 03:31:42 -04:00
parent f9960b4fc9
commit cb6948aa14
27 changed files with 3428 additions and 25 deletions

View File

@@ -4,6 +4,22 @@
*/
export interface paths {
"/api/storage": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["GetApiStorage"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/workspaces/{id}/logo": {
parameters: {
query?: never;
@@ -420,6 +436,102 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/my-feedback/{id}/cancel": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post: operations["SocializeApiModulesFeedbackHandlersCancelMyFeedbackHandler"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/feedback/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["SocializeApiModulesFeedbackHandlersGetDeveloperFeedbackHandler"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch: operations["SocializeApiModulesFeedbackHandlersUpdateDeveloperFeedbackHandler"];
trace?: never;
};
"/api/my-feedback/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["SocializeApiModulesFeedbackHandlersGetMyFeedbackHandler"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/feedback": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["SocializeApiModulesFeedbackHandlersListDeveloperFeedbackHandler"];
put?: never;
post: operations["SocializeApiModulesFeedbackHandlersSubmitFeedbackHandler"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/feedback/tags": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["SocializeApiModulesFeedbackHandlersListFeedbackTagsHandler"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/my-feedback": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["SocializeApiModulesFeedbackHandlersListMyFeedbackHandler"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/content-items": {
parameters: {
query?: never;
@@ -874,6 +986,81 @@ export interface components {
message?: string;
};
SocializeApiModulesIdentityHandlersVerifyEmailRequest: Record<string, never>;
SocializeApiModulesFeedbackContractsFeedbackReportDto: {
/** Format: guid */
id?: string;
type?: string;
status?: string;
description?: string;
/** Format: guid */
reporterUserId?: string;
reporterDisplayName?: string;
reporterEmail?: string;
metadata?: components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackMetadataDto"];
context?: components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackContextDto"];
tags?: string[];
/** Format: date-time */
createdAt?: string;
/** Format: date-time */
lastActivityAt?: string;
/** Format: date-time */
cancelledAt?: string | null;
cancellationReason?: string | null;
};
SocializeApiModulesFeedbackContractsFeedbackMetadataDto: {
submittedPath?: string;
browserUserAgent?: string | null;
/** Format: int32 */
viewportWidth?: number | null;
/** Format: int32 */
viewportHeight?: number | null;
appVersion?: string | null;
};
SocializeApiModulesFeedbackContractsFeedbackContextDto: {
/** Format: guid */
workspaceId?: string | null;
workspaceName?: string | null;
/** Format: guid */
clientId?: string | null;
clientName?: string | null;
/** Format: guid */
projectId?: string | null;
projectName?: string | null;
/** Format: guid */
contentItemId?: string | null;
contentItemTitle?: string | null;
};
SocializeApiModulesFeedbackHandlersCancelMyFeedbackRequest: {
reason?: string | null;
};
SocializeApiModulesFeedbackHandlersSubmitFeedbackRequest: {
type: string;
description: string;
submittedPath: string;
browserUserAgent?: string | null;
/** Format: int32 */
viewportWidth?: number | null;
/** Format: int32 */
viewportHeight?: number | null;
appVersion?: string | null;
/** Format: guid */
workspaceId?: string | null;
workspaceName?: string | null;
/** Format: guid */
clientId?: string | null;
clientName?: string | null;
/** Format: guid */
projectId?: string | null;
projectName?: string | null;
/** Format: guid */
contentItemId?: string | null;
contentItemTitle?: string | null;
};
SocializeApiModulesFeedbackHandlersUpdateDeveloperFeedbackRequest: {
type?: string | null;
status?: string | null;
tags?: string[] | null;
};
SocializeApiModulesContentItemsHandlersContentItemDto: {
/** Format: guid */
id?: string;
@@ -1146,6 +1333,25 @@ export interface components {
}
export type $defs = Record<string, never>;
export interface operations {
GetApiStorage: {
parameters: {
query?: never;
header?: never;
path: {
blobPath: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesWorkspacesHandlersChangeWorkspaceLogoHandler: {
parameters: {
query?: never;
@@ -2032,6 +2238,297 @@ export interface operations {
};
};
};
SocializeApiModulesFeedbackHandlersCancelMyFeedbackHandler: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackHandlersCancelMyFeedbackRequest"];
};
};
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackReportDto"];
};
};
/** @description Bad Request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/problem+json": components["schemas"]["FastEndpointsErrorResponse"];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesFeedbackHandlersGetDeveloperFeedbackHandler: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackReportDto"];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Forbidden */
403: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesFeedbackHandlersUpdateDeveloperFeedbackHandler: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackHandlersUpdateDeveloperFeedbackRequest"];
};
};
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackReportDto"];
};
};
/** @description Bad Request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/problem+json": components["schemas"]["FastEndpointsErrorResponse"];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Forbidden */
403: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesFeedbackHandlersGetMyFeedbackHandler: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackReportDto"];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesFeedbackHandlersListDeveloperFeedbackHandler: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackReportDto"][];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Forbidden */
403: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesFeedbackHandlersSubmitFeedbackHandler: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackHandlersSubmitFeedbackRequest"];
};
};
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackReportDto"];
};
};
/** @description Bad Request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/problem+json": components["schemas"]["FastEndpointsErrorResponse"];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesFeedbackHandlersListFeedbackTagsHandler: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": string[];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Forbidden */
403: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesFeedbackHandlersListMyFeedbackHandler: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Success */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SocializeApiModulesFeedbackContractsFeedbackReportDto"][];
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
SocializeApiModulesContentItemsHandlersGetContentItemsHandler: {
parameters: {
query?: {