@oneuptime/common 7.0.4547 → 7.0.4585
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/Alert.ts +8 -6
- package/Models/DatabaseModels/AlertInternalNote.ts +4 -6
- package/Models/DatabaseModels/AlertOwnerTeam.ts +1 -0
- package/Models/DatabaseModels/AlertOwnerUser.ts +1 -0
- package/Models/DatabaseModels/AlertSeverity.ts +1 -0
- package/Models/DatabaseModels/AlertStateTimeline.ts +4 -6
- package/Models/DatabaseModels/ApiKey.ts +3 -3
- package/Models/DatabaseModels/ApiKeyPermission.ts +5 -1
- package/Models/DatabaseModels/CallLog.ts +1 -0
- package/Models/DatabaseModels/CopilotCodeRepository.ts +3 -6
- package/Models/DatabaseModels/Dashboard.ts +1 -0
- package/Models/DatabaseModels/Domain.ts +2 -0
- package/Models/DatabaseModels/GlobalConfig.ts +1 -0
- package/Models/DatabaseModels/GreenlockCertificate.ts +1 -1
- package/Models/DatabaseModels/Incident.ts +18 -18
- package/Models/DatabaseModels/IncidentInternalNote.ts +4 -6
- package/Models/DatabaseModels/IncidentOwnerTeam.ts +4 -6
- package/Models/DatabaseModels/IncidentOwnerUser.ts +1 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +8 -6
- package/Models/DatabaseModels/IncidentSeverity.ts +1 -0
- package/Models/DatabaseModels/IncidentState.ts +1 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +7 -12
- package/Models/DatabaseModels/IncidentTemplate.ts +2 -6
- package/Models/DatabaseModels/IncidentTemplateOwnerTeam.ts +4 -6
- package/Models/DatabaseModels/IncidentTemplateOwnerUser.ts +4 -6
- package/Models/DatabaseModels/Label.ts +1 -0
- package/Models/DatabaseModels/Monitor.ts +20 -29
- package/Models/DatabaseModels/MonitorGroup.ts +2 -6
- package/Models/DatabaseModels/MonitorGroupOwnerTeam.ts +4 -6
- package/Models/DatabaseModels/MonitorGroupOwnerUser.ts +4 -6
- package/Models/DatabaseModels/MonitorOwnerTeam.ts +1 -0
- package/Models/DatabaseModels/MonitorOwnerUser.ts +1 -0
- package/Models/DatabaseModels/MonitorProbe.ts +1 -0
- package/Models/DatabaseModels/MonitorStatus.ts +2 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +4 -6
- package/Models/DatabaseModels/MonitorTest.ts +1 -0
- package/Models/DatabaseModels/OnCallDutyPolicy.ts +3 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +1 -0
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.ts +4 -6
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.ts +4 -6
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +1 -0
- package/Models/DatabaseModels/Probe.ts +2 -0
- package/Models/DatabaseModels/ProbeOwnerTeam.ts +4 -6
- package/Models/DatabaseModels/ProbeOwnerUser.ts +4 -6
- package/Models/DatabaseModels/Project.ts +16 -2
- package/Models/DatabaseModels/ProjectSmtpConfig.ts +6 -1
- package/Models/DatabaseModels/ProjectSso.ts +5 -1
- package/Models/DatabaseModels/PromoCode.ts +1 -1
- package/Models/DatabaseModels/ScheduledMaintenance.ts +13 -6
- package/Models/DatabaseModels/ScheduledMaintenanceInternalNote.ts +4 -6
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.ts +4 -6
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.ts +4 -6
- package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +8 -6
- package/Models/DatabaseModels/ScheduledMaintenanceState.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +7 -12
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +5 -6
- package/Models/DatabaseModels/ServiceCatalog.ts +1 -0
- package/Models/DatabaseModels/ServiceCopilotCodeRepository.ts +1 -0
- package/Models/DatabaseModels/SmsLog.ts +1 -0
- package/Models/DatabaseModels/StatusPage.ts +16 -12
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +10 -7
- package/Models/DatabaseModels/StatusPageAnnouncementTemplate.ts +1 -0
- package/Models/DatabaseModels/StatusPageDomain.ts +1 -0
- package/Models/DatabaseModels/StatusPageGroup.ts +4 -0
- package/Models/DatabaseModels/StatusPageOwnerTeam.ts +4 -6
- package/Models/DatabaseModels/StatusPageOwnerUser.ts +1 -0
- package/Models/DatabaseModels/StatusPagePrivateUser.ts +1 -0
- package/Models/DatabaseModels/StatusPageResource.ts +3 -0
- package/Models/DatabaseModels/StatusPageSso.ts +10 -2
- package/Models/DatabaseModels/StatusPageSubscriber.ts +2 -0
- package/Models/DatabaseModels/Team.ts +2 -5
- package/Models/DatabaseModels/TeamMember.ts +1 -0
- package/Models/DatabaseModels/TeamPermission.ts +5 -1
- package/Models/DatabaseModels/TelemetryException.ts +3 -0
- package/Models/DatabaseModels/TelemetryIngestionKey.ts +2 -5
- package/Models/DatabaseModels/TelemetryService.ts +3 -6
- package/Models/DatabaseModels/User.ts +12 -3
- package/Models/DatabaseModels/UserCall.ts +1 -0
- package/Models/DatabaseModels/UserEmail.ts +2 -0
- package/Models/DatabaseModels/UserNotificationSetting.ts +10 -2
- package/Models/DatabaseModels/UserSMS.ts +2 -0
- package/Models/DatabaseModels/UserTwoFactorAuth.ts +1 -0
- package/Models/DatabaseModels/Workflow.ts +2 -0
- package/Models/DatabaseModels/WorkflowVariable.ts +1 -0
- package/Server/Services/MonitorService.ts +0 -36
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +1 -0
- package/Server/Types/Database/Permissions/ColumnPermission.ts +21 -14
- package/Types/Database/TableColumn.ts +3 -0
- package/Utils/Schema/AnalyticsModelSchema.ts +69 -41
- package/Utils/Schema/ModelSchema.ts +180 -79
- package/build/dist/Models/DatabaseModels/Alert.js +7 -6
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js +4 -6
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js +1 -0
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js +1 -0
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +1 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +4 -6
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ApiKey.js +3 -5
- package/build/dist/Models/DatabaseModels/ApiKey.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ApiKeyPermission.js +5 -1
- package/build/dist/Models/DatabaseModels/ApiKeyPermission.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CallLog.js +1 -0
- package/build/dist/Models/DatabaseModels/CallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CopilotCodeRepository.js +3 -6
- package/build/dist/Models/DatabaseModels/CopilotCodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Dashboard.js +1 -0
- package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Domain.js +2 -0
- package/build/dist/Models/DatabaseModels/Domain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +1 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GreenlockCertificate.js +1 -1
- package/build/dist/Models/DatabaseModels/GreenlockCertificate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +16 -18
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js +4 -6
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js +4 -6
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +8 -6
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentState.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +7 -12
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js +2 -6
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js +4 -6
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js +4 -6
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Label.js +1 -0
- package/build/dist/Models/DatabaseModels/Label.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +17 -26
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroup.js +2 -6
- package/build/dist/Models/DatabaseModels/MonitorGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js +4 -6
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js +4 -6
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js +1 -0
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js +1 -0
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorProbe.js +1 -0
- package/build/dist/Models/DatabaseModels/MonitorProbe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatus.js +2 -0
- package/build/dist/Models/DatabaseModels/MonitorStatus.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +4 -6
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTest.js +1 -0
- package/build/dist/Models/DatabaseModels/MonitorTest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js +3 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js +4 -6
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js +4 -6
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Probe.js +2 -0
- package/build/dist/Models/DatabaseModels/Probe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js +4 -6
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js +4 -6
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +16 -2
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js +6 -1
- package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSso.js +5 -1
- package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PromoCode.js +1 -1
- package/build/dist/Models/DatabaseModels/PromoCode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +13 -6
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js +4 -6
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js +4 -6
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js +4 -6
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +8 -6
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +7 -12
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +5 -6
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalog.js +1 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js +1 -0
- package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/SmsLog.js +1 -0
- package/build/dist/Models/DatabaseModels/SmsLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +16 -12
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +10 -7
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js +4 -0
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js +4 -6
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +3 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSso.js +10 -2
- package/build/dist/Models/DatabaseModels/StatusPageSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +2 -0
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Team.js +2 -5
- package/build/dist/Models/DatabaseModels/Team.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamMember.js +1 -0
- package/build/dist/Models/DatabaseModels/TeamMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamPermission.js +5 -1
- package/build/dist/Models/DatabaseModels/TeamPermission.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +3 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +2 -5
- package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryService.js +3 -6
- package/build/dist/Models/DatabaseModels/TelemetryService.js.map +1 -1
- package/build/dist/Models/DatabaseModels/User.js +12 -3
- package/build/dist/Models/DatabaseModels/User.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserCall.js +1 -0
- package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserEmail.js +2 -0
- package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +10 -2
- package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserSMS.js +2 -0
- package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserTwoFactorAuth.js +1 -0
- package/build/dist/Models/DatabaseModels/UserTwoFactorAuth.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Workflow.js +2 -0
- package/build/dist/Models/DatabaseModels/Workflow.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js +1 -0
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +0 -31
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/ColumnPermission.js +4 -0
- package/build/dist/Server/Types/Database/Permissions/ColumnPermission.js.map +1 -1
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Utils/Schema/AnalyticsModelSchema.js +59 -41
- package/build/dist/Utils/Schema/AnalyticsModelSchema.js.map +1 -1
- package/build/dist/Utils/Schema/ModelSchema.js +173 -79
- package/build/dist/Utils/Schema/ModelSchema.js.map +1 -1
- package/package.json +1 -1
|
@@ -85,7 +85,11 @@ export class ModelSchema extends BaseSchema {
|
|
|
85
85
|
}
|
|
86
86
|
else if (column.type === TableColumnType.Number ||
|
|
87
87
|
column.type === TableColumnType.PositiveNumber) {
|
|
88
|
-
|
|
88
|
+
const openapiConfig = { type: "number", example: 42 };
|
|
89
|
+
if (column.defaultValue !== undefined) {
|
|
90
|
+
openapiConfig.default = column.defaultValue;
|
|
91
|
+
}
|
|
92
|
+
zodType = z.number().openapi(openapiConfig);
|
|
89
93
|
}
|
|
90
94
|
else if (column.type === TableColumnType.Email) {
|
|
91
95
|
zodType = Email.getSchema();
|
|
@@ -101,15 +105,23 @@ export class ModelSchema extends BaseSchema {
|
|
|
101
105
|
.openapi({ type: "string", example: "example-slug-value" });
|
|
102
106
|
}
|
|
103
107
|
else if (column.type === TableColumnType.ShortText) {
|
|
108
|
+
const openapiConfig = { type: "string", example: "Example short text" };
|
|
109
|
+
if (column.defaultValue !== undefined) {
|
|
110
|
+
openapiConfig.default = column.defaultValue;
|
|
111
|
+
}
|
|
104
112
|
zodType = z
|
|
105
113
|
.string()
|
|
106
|
-
.openapi(
|
|
114
|
+
.openapi(openapiConfig);
|
|
107
115
|
}
|
|
108
116
|
else if (column.type === TableColumnType.LongText) {
|
|
109
|
-
|
|
117
|
+
const openapiConfig = {
|
|
110
118
|
type: "string",
|
|
111
119
|
example: "This is an example of longer text content that might be stored in this field.",
|
|
112
|
-
}
|
|
120
|
+
};
|
|
121
|
+
if (column.defaultValue !== undefined) {
|
|
122
|
+
openapiConfig.default = column.defaultValue;
|
|
123
|
+
}
|
|
124
|
+
zodType = z.string().openapi(openapiConfig);
|
|
113
125
|
}
|
|
114
126
|
else if (column.type === TableColumnType.Phone) {
|
|
115
127
|
zodType = Phone.getSchema();
|
|
@@ -206,28 +218,44 @@ export class ModelSchema extends BaseSchema {
|
|
|
206
218
|
});
|
|
207
219
|
}
|
|
208
220
|
else if (column.type === TableColumnType.SmallPositiveNumber) {
|
|
209
|
-
|
|
221
|
+
const openapiConfig = {
|
|
210
222
|
type: "integer",
|
|
211
223
|
example: 5,
|
|
212
|
-
}
|
|
224
|
+
};
|
|
225
|
+
if (column.defaultValue !== undefined) {
|
|
226
|
+
openapiConfig.default = column.defaultValue;
|
|
227
|
+
}
|
|
228
|
+
zodType = z.number().int().nonnegative().openapi(openapiConfig);
|
|
213
229
|
}
|
|
214
230
|
else if (column.type === TableColumnType.BigPositiveNumber) {
|
|
215
|
-
|
|
231
|
+
const openapiConfig = {
|
|
216
232
|
type: "number",
|
|
217
233
|
example: 1000000,
|
|
218
|
-
}
|
|
234
|
+
};
|
|
235
|
+
if (column.defaultValue !== undefined) {
|
|
236
|
+
openapiConfig.default = column.defaultValue;
|
|
237
|
+
}
|
|
238
|
+
zodType = z.number().nonnegative().openapi(openapiConfig);
|
|
219
239
|
}
|
|
220
240
|
else if (column.type === TableColumnType.SmallNumber) {
|
|
221
|
-
|
|
241
|
+
const openapiConfig = {
|
|
222
242
|
type: "integer",
|
|
223
243
|
example: 10,
|
|
224
|
-
}
|
|
244
|
+
};
|
|
245
|
+
if (column.defaultValue !== undefined) {
|
|
246
|
+
openapiConfig.default = column.defaultValue;
|
|
247
|
+
}
|
|
248
|
+
zodType = z.number().int().openapi(openapiConfig);
|
|
225
249
|
}
|
|
226
250
|
else if (column.type === TableColumnType.BigNumber) {
|
|
227
|
-
|
|
251
|
+
const openapiConfig = {
|
|
228
252
|
type: "number",
|
|
229
253
|
example: 1000000,
|
|
230
|
-
}
|
|
254
|
+
};
|
|
255
|
+
if (column.defaultValue !== undefined) {
|
|
256
|
+
openapiConfig.default = column.defaultValue;
|
|
257
|
+
}
|
|
258
|
+
zodType = z.number().openapi(openapiConfig);
|
|
231
259
|
}
|
|
232
260
|
else if (column.type === TableColumnType.Permission) {
|
|
233
261
|
zodType = z.any().openapi({
|
|
@@ -254,7 +282,11 @@ export class ModelSchema extends BaseSchema {
|
|
|
254
282
|
});
|
|
255
283
|
}
|
|
256
284
|
else if (column.type === TableColumnType.Boolean) {
|
|
257
|
-
|
|
285
|
+
const openapiConfig = { type: "boolean", example: true };
|
|
286
|
+
if (column.defaultValue !== undefined) {
|
|
287
|
+
openapiConfig.default = column.defaultValue;
|
|
288
|
+
}
|
|
289
|
+
zodType = z.boolean().openapi(openapiConfig);
|
|
258
290
|
}
|
|
259
291
|
else if (column.type === TableColumnType.JSON) {
|
|
260
292
|
zodType = z.any().openapi({
|
|
@@ -334,13 +366,31 @@ export class ModelSchema extends BaseSchema {
|
|
|
334
366
|
zodType = zodType.optional();
|
|
335
367
|
}
|
|
336
368
|
// add title and description to the schema
|
|
337
|
-
|
|
338
|
-
|
|
369
|
+
let finalDescription = "";
|
|
370
|
+
// Add column description first if it exists
|
|
371
|
+
if (column.description) {
|
|
372
|
+
finalDescription = column.description;
|
|
373
|
+
}
|
|
374
|
+
else if (column.title) {
|
|
375
|
+
finalDescription = column.title;
|
|
339
376
|
}
|
|
340
|
-
// Add permissions description to the
|
|
377
|
+
// Add permissions description, prefixed to the column description
|
|
341
378
|
const permissionsDescription = this.getColumnPermissionsDescription(model, key);
|
|
342
379
|
if (permissionsDescription) {
|
|
343
|
-
|
|
380
|
+
if (finalDescription) {
|
|
381
|
+
finalDescription = `${finalDescription}. ${permissionsDescription}`;
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
finalDescription = permissionsDescription;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
// Set the final combined description
|
|
388
|
+
if (finalDescription) {
|
|
389
|
+
zodType = zodType.describe(finalDescription);
|
|
390
|
+
}
|
|
391
|
+
// Mark computed fields as readOnly in OpenAPI spec
|
|
392
|
+
if (column.computed) {
|
|
393
|
+
zodType = zodType.openapi({ readOnly: true });
|
|
344
394
|
}
|
|
345
395
|
shape[key] = zodType;
|
|
346
396
|
}
|
|
@@ -871,6 +921,7 @@ export class ModelSchema extends BaseSchema {
|
|
|
871
921
|
}
|
|
872
922
|
// Shared method to build model schemas with different field exclusions
|
|
873
923
|
static buildModelSchema(data) {
|
|
924
|
+
var _a;
|
|
874
925
|
const modelType = data.modelType;
|
|
875
926
|
const model = new modelType();
|
|
876
927
|
const columns = getTableColumns(model);
|
|
@@ -897,6 +948,11 @@ export class ModelSchema extends BaseSchema {
|
|
|
897
948
|
if (data.includedFields && !data.includedFields.includes(key)) {
|
|
898
949
|
continue;
|
|
899
950
|
}
|
|
951
|
+
// Skip computed fields for create and update operations
|
|
952
|
+
if (column.computed &&
|
|
953
|
+
(data.schemaType === "create" || data.schemaType === "update")) {
|
|
954
|
+
continue;
|
|
955
|
+
}
|
|
900
956
|
// Filter out columns with no permissions (root-only access)
|
|
901
957
|
const accessControl = columnAccessControl[key];
|
|
902
958
|
if (accessControl) {
|
|
@@ -933,6 +989,10 @@ export class ModelSchema extends BaseSchema {
|
|
|
933
989
|
// should be optional
|
|
934
990
|
zodType = zodType.optional();
|
|
935
991
|
}
|
|
992
|
+
else if (((_a = column.title) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === "project id" && column.type === TableColumnType.ObjectID) {
|
|
993
|
+
// this is optional in the API as well as it's derived from API key
|
|
994
|
+
zodType = zodType.optional();
|
|
995
|
+
}
|
|
936
996
|
else if (column.required) {
|
|
937
997
|
// leave as is
|
|
938
998
|
}
|
|
@@ -944,8 +1004,27 @@ export class ModelSchema extends BaseSchema {
|
|
|
944
1004
|
zodType = zodType.optional();
|
|
945
1005
|
}
|
|
946
1006
|
// Add title and description to the schema
|
|
947
|
-
|
|
948
|
-
|
|
1007
|
+
let finalDescription = "";
|
|
1008
|
+
// Add column description first if it exists
|
|
1009
|
+
if (column.description) {
|
|
1010
|
+
finalDescription = column.description;
|
|
1011
|
+
}
|
|
1012
|
+
else if (column.title) {
|
|
1013
|
+
finalDescription = column.title;
|
|
1014
|
+
}
|
|
1015
|
+
// Add permissions description, prefixed to the column description
|
|
1016
|
+
const permissionsDescription = this.getColumnPermissionsDescription(model, key);
|
|
1017
|
+
if (permissionsDescription) {
|
|
1018
|
+
if (finalDescription) {
|
|
1019
|
+
finalDescription = `${finalDescription}. ${permissionsDescription}`;
|
|
1020
|
+
}
|
|
1021
|
+
else {
|
|
1022
|
+
finalDescription = permissionsDescription;
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
// Set the final combined description
|
|
1026
|
+
if (finalDescription) {
|
|
1027
|
+
zodType = zodType.describe(finalDescription);
|
|
949
1028
|
}
|
|
950
1029
|
shape[key] = zodType;
|
|
951
1030
|
}
|
|
@@ -959,6 +1038,13 @@ export class ModelSchema extends BaseSchema {
|
|
|
959
1038
|
// Helper method to get Zod type for a column
|
|
960
1039
|
static getZodTypeForColumn(column, schemaType) {
|
|
961
1040
|
let zodType;
|
|
1041
|
+
// Helper function to add default value to openapi schema if it exists
|
|
1042
|
+
const addDefaultToOpenApi = (openApiConfig) => {
|
|
1043
|
+
if (column.defaultValue !== undefined && column.defaultValue !== null) {
|
|
1044
|
+
return Object.assign(Object.assign({}, openApiConfig), { default: column.defaultValue });
|
|
1045
|
+
}
|
|
1046
|
+
return openApiConfig;
|
|
1047
|
+
};
|
|
962
1048
|
if (column.type === TableColumnType.ObjectID) {
|
|
963
1049
|
zodType = ObjectID.getSchema();
|
|
964
1050
|
}
|
|
@@ -978,14 +1064,14 @@ export class ModelSchema extends BaseSchema {
|
|
|
978
1064
|
zodType = OneUptimeDate.getSchema();
|
|
979
1065
|
}
|
|
980
1066
|
else if (column.type === TableColumnType.VeryLongText) {
|
|
981
|
-
zodType = z.string().openapi({
|
|
1067
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
982
1068
|
type: "string",
|
|
983
1069
|
example: "This is an example of very long text content that might be stored in this field. It can contain a lot of information, such as detailed descriptions, comments, or any other lengthy text data that needs to be stored in the database.",
|
|
984
|
-
});
|
|
1070
|
+
}));
|
|
985
1071
|
}
|
|
986
1072
|
else if (column.type === TableColumnType.Number ||
|
|
987
1073
|
column.type === TableColumnType.PositiveNumber) {
|
|
988
|
-
zodType = z.number().openapi({ type: "number", example: 42 });
|
|
1074
|
+
zodType = z.number().openapi(addDefaultToOpenApi({ type: "number", example: 42 }));
|
|
989
1075
|
}
|
|
990
1076
|
else if (column.type === TableColumnType.Email) {
|
|
991
1077
|
zodType = Email.getSchema();
|
|
@@ -993,23 +1079,23 @@ export class ModelSchema extends BaseSchema {
|
|
|
993
1079
|
else if (column.type === TableColumnType.HashedString) {
|
|
994
1080
|
zodType = z
|
|
995
1081
|
.string()
|
|
996
|
-
.openapi({ type: "string", example: "hashed_string_value" });
|
|
1082
|
+
.openapi(addDefaultToOpenApi({ type: "string", example: "hashed_string_value" }));
|
|
997
1083
|
}
|
|
998
1084
|
else if (column.type === TableColumnType.Slug) {
|
|
999
1085
|
zodType = z
|
|
1000
1086
|
.string()
|
|
1001
|
-
.openapi({ type: "string", example: "example-slug-value" });
|
|
1087
|
+
.openapi(addDefaultToOpenApi({ type: "string", example: "example-slug-value" }));
|
|
1002
1088
|
}
|
|
1003
1089
|
else if (column.type === TableColumnType.ShortText) {
|
|
1004
1090
|
zodType = z
|
|
1005
1091
|
.string()
|
|
1006
|
-
.openapi({ type: "string", example: "Example short text" });
|
|
1092
|
+
.openapi(addDefaultToOpenApi({ type: "string", example: "Example short text" }));
|
|
1007
1093
|
}
|
|
1008
1094
|
else if (column.type === TableColumnType.LongText) {
|
|
1009
|
-
zodType = z.string().openapi({
|
|
1095
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1010
1096
|
type: "string",
|
|
1011
1097
|
example: "This is an example of longer text content that might be stored in this field.",
|
|
1012
|
-
});
|
|
1098
|
+
}));
|
|
1013
1099
|
}
|
|
1014
1100
|
else if (column.type === TableColumnType.Phone) {
|
|
1015
1101
|
zodType = Phone.getSchema();
|
|
@@ -1018,152 +1104,152 @@ export class ModelSchema extends BaseSchema {
|
|
|
1018
1104
|
zodType = Version.getSchema();
|
|
1019
1105
|
}
|
|
1020
1106
|
else if (column.type === TableColumnType.Password) {
|
|
1021
|
-
zodType = z.string().openapi({
|
|
1107
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1022
1108
|
type: "string",
|
|
1023
1109
|
format: "password",
|
|
1024
1110
|
example: "••••••••",
|
|
1025
|
-
});
|
|
1111
|
+
}));
|
|
1026
1112
|
}
|
|
1027
1113
|
else if (column.type === TableColumnType.Name) {
|
|
1028
1114
|
zodType = Name.getSchema();
|
|
1029
1115
|
}
|
|
1030
1116
|
else if (column.type === TableColumnType.Description) {
|
|
1031
|
-
zodType = z.string().openapi({
|
|
1117
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1032
1118
|
type: "string",
|
|
1033
1119
|
example: "This is a description of the item",
|
|
1034
|
-
});
|
|
1120
|
+
}));
|
|
1035
1121
|
}
|
|
1036
1122
|
else if (column.type === TableColumnType.File) {
|
|
1037
|
-
zodType = z.any().openapi({
|
|
1123
|
+
zodType = z.any().openapi(addDefaultToOpenApi({
|
|
1038
1124
|
type: "string",
|
|
1039
1125
|
format: "binary",
|
|
1040
|
-
});
|
|
1126
|
+
}));
|
|
1041
1127
|
}
|
|
1042
1128
|
else if (column.type === TableColumnType.Buffer) {
|
|
1043
|
-
zodType = z.any().openapi({
|
|
1129
|
+
zodType = z.any().openapi(addDefaultToOpenApi({
|
|
1044
1130
|
type: "string",
|
|
1045
1131
|
format: "binary",
|
|
1046
|
-
});
|
|
1132
|
+
}));
|
|
1047
1133
|
}
|
|
1048
1134
|
else if (column.type === TableColumnType.ShortURL) {
|
|
1049
|
-
zodType = z.string().url().openapi({
|
|
1135
|
+
zodType = z.string().url().openapi(addDefaultToOpenApi({
|
|
1050
1136
|
type: "string",
|
|
1051
1137
|
example: "https://short.url/abc123",
|
|
1052
|
-
});
|
|
1138
|
+
}));
|
|
1053
1139
|
}
|
|
1054
1140
|
else if (column.type === TableColumnType.Markdown) {
|
|
1055
|
-
zodType = z.string().openapi({
|
|
1141
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1056
1142
|
type: "string",
|
|
1057
1143
|
example: "# Heading\n\nThis is **markdown** content",
|
|
1058
|
-
});
|
|
1144
|
+
}));
|
|
1059
1145
|
}
|
|
1060
1146
|
else if (column.type === TableColumnType.Domain) {
|
|
1061
1147
|
zodType = Domain.getSchema();
|
|
1062
1148
|
}
|
|
1063
1149
|
else if (column.type === TableColumnType.LongURL) {
|
|
1064
|
-
zodType = z.string().url().openapi({
|
|
1150
|
+
zodType = z.string().url().openapi(addDefaultToOpenApi({
|
|
1065
1151
|
type: "string",
|
|
1066
1152
|
example: "https://www.example.com/path/to/resource?param=value",
|
|
1067
|
-
});
|
|
1153
|
+
}));
|
|
1068
1154
|
}
|
|
1069
1155
|
else if (column.type === TableColumnType.OTP) {
|
|
1070
|
-
zodType = z.string().openapi({
|
|
1156
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1071
1157
|
type: "string",
|
|
1072
1158
|
example: "123456",
|
|
1073
|
-
});
|
|
1159
|
+
}));
|
|
1074
1160
|
}
|
|
1075
1161
|
else if (column.type === TableColumnType.HTML) {
|
|
1076
|
-
zodType = z.string().openapi({
|
|
1162
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1077
1163
|
type: "string",
|
|
1078
1164
|
example: "<div><h1>Title</h1><p>Content</p></div>",
|
|
1079
|
-
});
|
|
1165
|
+
}));
|
|
1080
1166
|
}
|
|
1081
1167
|
else if (column.type === TableColumnType.JavaScript) {
|
|
1082
|
-
zodType = z.string().openapi({
|
|
1168
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1083
1169
|
type: "string",
|
|
1084
1170
|
example: "function example() { return true; }",
|
|
1085
|
-
});
|
|
1171
|
+
}));
|
|
1086
1172
|
}
|
|
1087
1173
|
else if (column.type === TableColumnType.CSS) {
|
|
1088
|
-
zodType = z.string().openapi({
|
|
1174
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1089
1175
|
type: "string",
|
|
1090
1176
|
example: "body { color: #333; margin: 0; }",
|
|
1091
|
-
});
|
|
1177
|
+
}));
|
|
1092
1178
|
}
|
|
1093
1179
|
else if (column.type === TableColumnType.Array) {
|
|
1094
|
-
zodType = z.array(z.any()).openapi({
|
|
1180
|
+
zodType = z.array(z.any()).openapi(addDefaultToOpenApi({
|
|
1095
1181
|
type: "array",
|
|
1096
1182
|
items: {
|
|
1097
1183
|
type: "string",
|
|
1098
1184
|
},
|
|
1099
1185
|
example: ["item1", "item2", "item3"],
|
|
1100
|
-
});
|
|
1186
|
+
}));
|
|
1101
1187
|
}
|
|
1102
1188
|
else if (column.type === TableColumnType.SmallPositiveNumber) {
|
|
1103
|
-
zodType = z.number().int().nonnegative().openapi({
|
|
1189
|
+
zodType = z.number().int().nonnegative().openapi(addDefaultToOpenApi({
|
|
1104
1190
|
type: "integer",
|
|
1105
1191
|
example: 5,
|
|
1106
|
-
});
|
|
1192
|
+
}));
|
|
1107
1193
|
}
|
|
1108
1194
|
else if (column.type === TableColumnType.BigPositiveNumber) {
|
|
1109
|
-
zodType = z.number().nonnegative().openapi({
|
|
1195
|
+
zodType = z.number().nonnegative().openapi(addDefaultToOpenApi({
|
|
1110
1196
|
type: "number",
|
|
1111
1197
|
example: 1000000,
|
|
1112
|
-
});
|
|
1198
|
+
}));
|
|
1113
1199
|
}
|
|
1114
1200
|
else if (column.type === TableColumnType.SmallNumber) {
|
|
1115
|
-
zodType = z.number().int().openapi({
|
|
1201
|
+
zodType = z.number().int().openapi(addDefaultToOpenApi({
|
|
1116
1202
|
type: "integer",
|
|
1117
1203
|
example: 10,
|
|
1118
|
-
});
|
|
1204
|
+
}));
|
|
1119
1205
|
}
|
|
1120
1206
|
else if (column.type === TableColumnType.BigNumber) {
|
|
1121
|
-
zodType = z.number().openapi({
|
|
1207
|
+
zodType = z.number().openapi(addDefaultToOpenApi({
|
|
1122
1208
|
type: "number",
|
|
1123
1209
|
example: 1000000,
|
|
1124
|
-
});
|
|
1210
|
+
}));
|
|
1125
1211
|
}
|
|
1126
1212
|
else if (column.type === TableColumnType.Permission) {
|
|
1127
|
-
zodType = z.any().openapi({
|
|
1213
|
+
zodType = z.any().openapi(addDefaultToOpenApi({
|
|
1128
1214
|
type: "object",
|
|
1129
1215
|
example: { read: true, write: false, delete: false },
|
|
1130
|
-
});
|
|
1216
|
+
}));
|
|
1131
1217
|
}
|
|
1132
1218
|
else if (column.type === TableColumnType.CustomFieldType) {
|
|
1133
|
-
zodType = z.any().openapi({
|
|
1219
|
+
zodType = z.any().openapi(addDefaultToOpenApi({
|
|
1134
1220
|
type: "object",
|
|
1135
1221
|
example: { type: "text", required: true },
|
|
1136
|
-
});
|
|
1222
|
+
}));
|
|
1137
1223
|
}
|
|
1138
1224
|
else if (column.type === TableColumnType.MonitorType) {
|
|
1139
|
-
zodType = z.string().openapi({
|
|
1225
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1140
1226
|
type: "string",
|
|
1141
1227
|
example: "HTTP",
|
|
1142
|
-
});
|
|
1228
|
+
}));
|
|
1143
1229
|
}
|
|
1144
1230
|
else if (column.type === TableColumnType.WorkflowStatus) {
|
|
1145
|
-
zodType = z.string().openapi({
|
|
1231
|
+
zodType = z.string().openapi(addDefaultToOpenApi({
|
|
1146
1232
|
type: "string",
|
|
1147
1233
|
example: "In Progress",
|
|
1148
|
-
});
|
|
1234
|
+
}));
|
|
1149
1235
|
}
|
|
1150
1236
|
else if (column.type === TableColumnType.Boolean) {
|
|
1151
|
-
zodType = z.boolean().openapi({ type: "boolean", example: true });
|
|
1237
|
+
zodType = z.boolean().openapi(addDefaultToOpenApi({ type: "boolean", example: true }));
|
|
1152
1238
|
}
|
|
1153
1239
|
else if (column.type === TableColumnType.JSON) {
|
|
1154
|
-
zodType = z.any().openapi({
|
|
1240
|
+
zodType = z.any().openapi(addDefaultToOpenApi({
|
|
1155
1241
|
type: "object",
|
|
1156
1242
|
example: { key: "value", nested: { data: 123 } },
|
|
1157
|
-
});
|
|
1243
|
+
}));
|
|
1158
1244
|
}
|
|
1159
1245
|
else if (column.type === TableColumnType.EntityArray) {
|
|
1160
1246
|
const entityArrayType = column.modelType;
|
|
1161
1247
|
if (!entityArrayType) {
|
|
1162
|
-
return z.any().openapi({
|
|
1248
|
+
return z.any().openapi(addDefaultToOpenApi({
|
|
1163
1249
|
type: "array",
|
|
1164
1250
|
items: { type: "object" },
|
|
1165
1251
|
example: [],
|
|
1166
|
-
});
|
|
1252
|
+
}));
|
|
1167
1253
|
}
|
|
1168
1254
|
// Use the appropriate schema method based on the operation type
|
|
1169
1255
|
let schemaMethod;
|
|
@@ -1187,7 +1273,7 @@ export class ModelSchema extends BaseSchema {
|
|
|
1187
1273
|
modelType: entityArrayType,
|
|
1188
1274
|
});
|
|
1189
1275
|
}))
|
|
1190
|
-
.openapi({
|
|
1276
|
+
.openapi(addDefaultToOpenApi({
|
|
1191
1277
|
type: "array",
|
|
1192
1278
|
items: {
|
|
1193
1279
|
type: "object",
|
|
@@ -1196,16 +1282,16 @@ export class ModelSchema extends BaseSchema {
|
|
|
1196
1282
|
},
|
|
1197
1283
|
},
|
|
1198
1284
|
example: [{ id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }],
|
|
1199
|
-
});
|
|
1285
|
+
}));
|
|
1200
1286
|
}
|
|
1201
1287
|
else if (column.type === TableColumnType.Entity) {
|
|
1202
1288
|
const entityType = column.modelType;
|
|
1203
1289
|
if (!entityType) {
|
|
1204
|
-
return z.any().openapi({
|
|
1290
|
+
return z.any().openapi(addDefaultToOpenApi({
|
|
1205
1291
|
type: "object",
|
|
1206
1292
|
description: "Entity reference",
|
|
1207
1293
|
example: { _id: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" },
|
|
1208
|
-
});
|
|
1294
|
+
}));
|
|
1209
1295
|
}
|
|
1210
1296
|
// Use the appropriate schema method based on the operation type
|
|
1211
1297
|
let schema;
|
|
@@ -1227,13 +1313,21 @@ export class ModelSchema extends BaseSchema {
|
|
|
1227
1313
|
.lazy(() => {
|
|
1228
1314
|
return schema;
|
|
1229
1315
|
})
|
|
1230
|
-
.openapi({
|
|
1316
|
+
.openapi(addDefaultToOpenApi({
|
|
1231
1317
|
type: "object",
|
|
1232
1318
|
example: { id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" },
|
|
1233
|
-
});
|
|
1319
|
+
}));
|
|
1234
1320
|
}
|
|
1235
1321
|
else {
|
|
1236
|
-
zodType = z.any().openapi({ type: "null", example: null });
|
|
1322
|
+
zodType = z.any().openapi(addDefaultToOpenApi({ type: "null", example: null }));
|
|
1323
|
+
}
|
|
1324
|
+
// Apply default value if it exists in the column metadata
|
|
1325
|
+
if (column.defaultValue !== undefined && column.defaultValue !== null) {
|
|
1326
|
+
zodType = zodType.default(column.defaultValue);
|
|
1327
|
+
}
|
|
1328
|
+
// Mark computed fields as readOnly in OpenAPI spec
|
|
1329
|
+
if (column.computed) {
|
|
1330
|
+
zodType = zodType.openapi({ readOnly: true });
|
|
1237
1331
|
}
|
|
1238
1332
|
return zodType;
|
|
1239
1333
|
}
|