feat: refine content calendar experience

This commit is contained in:
2026-05-05 23:25:58 -04:00
parent b66c10b681
commit a7535d460d
72 changed files with 3233 additions and 1310 deletions

View File

@@ -7,7 +7,7 @@
},
"servers": [
{
"url": "http://localhost:5081"
"url": "http://localhost:5080"
}
],
"paths": {
@@ -448,6 +448,69 @@
]
}
},
"/api/organizations/{organizationId}/logo": {
"post": {
"tags": [
"Organizations",
"Api"
],
"operationId": "SocializeApiModulesOrganizationsHandlersChangeOrganizationLogoHandler",
"parameters": [
{
"name": "organizationId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "guid"
}
}
],
"requestBody": {
"x-name": "ChangeOrganizationLogoRequest",
"description": "",
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesOrganizationsHandlersChangeOrganizationLogoRequest"
}
}
},
"required": true,
"x-position": 1
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesOrganizationsHandlersChangeOrganizationLogoResponse"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/FastEndpointsErrorResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/organizations/{organizationId}": {
"get": {
"tags": [
@@ -2252,6 +2315,48 @@
]
}
},
"/api/content-items/{id}/activity": {
"get": {
"tags": [
"Content Items",
"Api"
],
"operationId": "SocializeApiModulesContentItemsHandlersGetContentItemActivityHandler",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SocializeApiModulesContentItemsHandlersContentItemActivityEntryDto"
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/content-items/{id}/status": {
"post": {
"tags": [
@@ -2325,7 +2430,7 @@
"x-name": "CreateCommentRequest",
"description": "",
"content": {
"application/json": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesCommentsHandlersCreateCommentRequest"
}
@@ -2407,45 +2512,6 @@
]
}
},
"/api/comments/{id}/resolve": {
"post": {
"tags": [
"Comments",
"Api"
],
"operationId": "SocializeApiModulesCommentsHandlersResolveCommentHandler",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesCommentsHandlersCommentDto"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/clients/{id}/portrait": {
"post": {
"tags": [
@@ -3045,6 +3111,335 @@
]
}
},
"/api/calendar-integrations/catalog": {
"get": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersListCalendarCatalogHandler",
"parameters": [
{
"name": "search",
"in": "query",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "country",
"in": "query",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "region",
"in": "query",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "language",
"in": "query",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "category",
"in": "query",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "cultureOrReligion",
"in": "query",
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "provider",
"in": "query",
"schema": {
"type": "string",
"nullable": true
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SocializeApiModulesCalendarIntegrationsHandlersCalendarCatalogEntryDto"
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/calendar-integrations/events": {
"get": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersListCalendarEventsHandler",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"schema": {
"type": "string",
"format": "guid",
"nullable": true
}
},
{
"name": "startDate",
"in": "query",
"schema": {
"type": "string",
"format": "date",
"nullable": true
}
},
{
"name": "endDate",
"in": "query",
"schema": {
"type": "string",
"format": "date",
"nullable": true
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SocializeApiModulesCalendarIntegrationsHandlersCalendarEventDto"
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/calendar-integrations/sources/{sourceId}/refresh": {
"post": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersRefreshCalendarSourceHandler",
"parameters": [
{
"name": "sourceId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "guid"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesCalendarIntegrationsHandlersCalendarSourceDto"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/calendar-integrations/export-feed": {
"get": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersGetUserCalendarExportFeedHandler",
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesCalendarIntegrationsHandlersUserCalendarExportFeedDto"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
},
"delete": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersRevokeUserCalendarExportFeedHandler",
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesCalendarIntegrationsHandlersUserCalendarExportFeedDto"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/calendar-integrations/export-feed/enable": {
"post": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersEnableUserCalendarExportFeedHandler",
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesCalendarIntegrationsHandlersUserCalendarExportFeedDto"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/calendar-integrations/export-feed/regenerate": {
"post": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersRegenerateUserCalendarExportFeedHandler",
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocializeApiModulesCalendarIntegrationsHandlersUserCalendarExportFeedDto"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"JWTBearerAuth": []
}
]
}
},
"/api/calendar-integrations/export-feed/{token}.ics": {
"get": {
"tags": [
"Calendar Integrations",
"Api"
],
"operationId": "SocializeApiModulesCalendarIntegrationsHandlersGetUserCalendarExportFeedIcsHandler",
"parameters": [
{
"name": "token",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/api/assets/{id}/revisions": {
"post": {
"tags": [
@@ -3663,6 +4058,30 @@
}
}
},
"SocializeApiModulesOrganizationsHandlersChangeOrganizationLogoResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"blobUrl": {
"type": "string"
}
}
},
"SocializeApiModulesOrganizationsHandlersChangeOrganizationLogoRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"file"
],
"properties": {
"file": {
"type": "string",
"format": "binary",
"minLength": 1,
"nullable": false
}
}
},
"SocializeApiModulesOrganizationsHandlersOrganizationDto": {
"type": "object",
"additionalProperties": false,
@@ -3674,6 +4093,10 @@
"name": {
"type": "string"
},
"logoUrl": {
"type": "string",
"nullable": true
},
"ownerUserId": {
"type": "string",
"format": "guid"
@@ -3696,12 +4119,53 @@
"$ref": "#/components/schemas/SocializeApiModulesWorkspacesHandlersWorkspaceDto"
}
},
"usage": {
"nullable": true,
"oneOf": [
{
"$ref": "#/components/schemas/SocializeApiModulesOrganizationsHandlersOrganizationUsageDto"
}
]
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
},
"SocializeApiModulesOrganizationsHandlersOrganizationUsageDto": {
"type": "object",
"additionalProperties": false,
"properties": {
"planName": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SocializeApiModulesOrganizationsHandlersOrganizationUsageItemDto"
}
}
}
},
"SocializeApiModulesOrganizationsHandlersOrganizationUsageItemDto": {
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string"
},
"used": {
"type": "integer",
"format": "int32"
},
"limit": {
"type": "integer",
"format": "int32",
"nullable": true
}
}
},
"SocializeApiModulesOrganizationsHandlersUpdateOrganizationRequest": {
"type": "object",
"additionalProperties": false,
@@ -4728,6 +5192,11 @@
"maxLength": 1024,
"minLength": 0,
"nullable": true
},
"dueDate": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
},
@@ -4785,6 +5254,54 @@
}
}
},
"SocializeApiModulesContentItemsHandlersContentItemActivityEntryDto": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"format": "guid"
},
"workspaceId": {
"type": "string",
"format": "guid"
},
"contentItemId": {
"type": "string",
"format": "guid"
},
"eventType": {
"type": "string"
},
"entityType": {
"type": "string"
},
"entityId": {
"type": "string",
"format": "guid"
},
"summary": {
"type": "string"
},
"actorUserId": {
"type": "string",
"format": "guid",
"nullable": true
},
"actorEmail": {
"type": "string",
"nullable": true
},
"metadataJson": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
},
"SocializeApiModulesContentItemsHandlersGetContentItemsRequest": {
"type": "object",
"additionalProperties": false
@@ -4842,17 +5359,26 @@
"body": {
"type": "string"
},
"isResolved": {
"type": "boolean"
"attachmentFileName": {
"type": "string",
"nullable": true
},
"attachmentContentType": {
"type": "string",
"nullable": true
},
"attachmentSizeBytes": {
"type": "integer",
"format": "int64",
"nullable": true
},
"attachmentBlobUrl": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"resolvedAt": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
},
@@ -4861,8 +5387,7 @@
"additionalProperties": false,
"required": [
"workspaceId",
"contentItemId",
"body"
"contentItemId"
],
"properties": {
"workspaceId": {
@@ -4885,8 +5410,12 @@
"body": {
"type": "string",
"maxLength": 4000,
"minLength": 0,
"nullable": false
"minLength": 0
},
"attachment": {
"type": "string",
"format": "binary",
"nullable": true
}
}
},
@@ -5370,10 +5899,175 @@
}
}
},
"SocializeApiModulesCalendarIntegrationsHandlersCalendarCatalogEntryDto": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"format": "guid"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"country": {
"type": "string",
"nullable": true
},
"region": {
"type": "string",
"nullable": true
},
"language": {
"type": "string"
},
"category": {
"type": "string"
},
"cultureOrReligion": {
"type": "string",
"nullable": true
},
"providerName": {
"type": "string"
},
"sourceUrl": {
"type": "string"
},
"trustLevel": {
"type": "string"
},
"defaultColor": {
"type": "string"
}
}
},
"SocializeApiModulesCalendarIntegrationsHandlersListCalendarCatalogRequest": {
"type": "object",
"additionalProperties": false
},
"SocializeApiModulesCalendarIntegrationsHandlersCalendarEventDto": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"format": "guid"
},
"calendarSourceId": {
"type": "string",
"format": "guid"
},
"sourceEventUid": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string",
"nullable": true
},
"isAllDay": {
"type": "boolean"
},
"isFloatingTime": {
"type": "boolean"
},
"startDate": {
"type": "string",
"format": "date"
},
"endDate": {
"type": "string",
"format": "date"
},
"startLocalDateTime": {
"type": "string",
"format": "date-time",
"nullable": true
},
"endLocalDateTime": {
"type": "string",
"format": "date-time",
"nullable": true
},
"startUtc": {
"type": "string",
"format": "date-time",
"nullable": true
},
"endUtc": {
"type": "string",
"format": "date-time",
"nullable": true
},
"timeZoneId": {
"type": "string",
"nullable": true
},
"recurrenceId": {
"type": "string",
"nullable": true
},
"location": {
"type": "string",
"nullable": true
},
"sourceUrl": {
"type": "string",
"nullable": true
},
"sourceLastModifiedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"importedAt": {
"type": "string",
"format": "date-time"
}
}
},
"SocializeApiModulesCalendarIntegrationsHandlersListCalendarEventsRequest": {
"type": "object",
"additionalProperties": false
},
"SocializeApiModulesCalendarIntegrationsHandlersListCalendarSourcesRequest": {
"type": "object",
"additionalProperties": false
},
"SocializeApiModulesCalendarIntegrationsHandlersUserCalendarExportFeedDto": {
"type": "object",
"additionalProperties": false,
"properties": {
"isEnabled": {
"type": "boolean"
},
"feedUrl": {
"type": "string",
"nullable": true
},
"createdAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"updatedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"revokedAt": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
},
"SocializeApiModulesAssetsHandlersAssetRevisionDto": {
"type": "object",
"additionalProperties": false,