@vfarcic/dot-ai
Version:
AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance
65 lines (64 loc) • 3.27 kB
JavaScript
"use strict";
/**
* User Management Endpoint Schemas (PRD #380 Task 2.5)
*
* Schemas for the /api/v1/users endpoints.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserManagementErrorSchema = exports.UserBadRequestErrorSchema = exports.UserNotFoundErrorSchema = exports.UserConflictErrorSchema = exports.UserDeleteResponseSchema = exports.UserDeleteDataSchema = exports.UserListResponseSchema = exports.UserListDataSchema = exports.UserCreateResponseSchema = exports.UserCreateDataSchema = exports.UserEntrySchema = exports.UserEmailParamsSchema = exports.UserCreateRequestSchema = void 0;
const zod_1 = require("zod");
const common_1 = require("./common");
// ---------------------------------------------------------------------------
// Request schemas
// ---------------------------------------------------------------------------
exports.UserCreateRequestSchema = zod_1.z.object({
email: zod_1.z.string().email().describe('User email address'),
password: zod_1.z.string().min(8).describe('User password (minimum 8 characters)'),
});
exports.UserEmailParamsSchema = zod_1.z.object({
email: zod_1.z.string().describe('User email address'),
});
// ---------------------------------------------------------------------------
// Response data schemas
// ---------------------------------------------------------------------------
exports.UserEntrySchema = zod_1.z.object({
email: zod_1.z.string().email().describe('User email address'),
});
exports.UserCreateDataSchema = zod_1.z.object({
email: zod_1.z.string().email().describe('Created user email'),
message: zod_1.z.string().describe('Result message'),
});
exports.UserCreateResponseSchema = (0, common_1.createSuccessResponseSchema)(exports.UserCreateDataSchema);
exports.UserListDataSchema = zod_1.z.object({
users: zod_1.z.array(exports.UserEntrySchema).describe('List of users'),
total: zod_1.z.number().describe('Total number of users'),
});
exports.UserListResponseSchema = (0, common_1.createSuccessResponseSchema)(exports.UserListDataSchema);
exports.UserDeleteDataSchema = zod_1.z.object({
email: zod_1.z.string().email().describe('Deleted user email'),
message: zod_1.z.string().describe('Result message'),
});
exports.UserDeleteResponseSchema = (0, common_1.createSuccessResponseSchema)(exports.UserDeleteDataSchema);
// ---------------------------------------------------------------------------
// Error schemas
// ---------------------------------------------------------------------------
exports.UserConflictErrorSchema = common_1.ErrorResponseSchema.extend({
error: common_1.ErrorDetailsSchema.extend({
code: zod_1.z.literal('USER_CONFLICT'),
}),
});
exports.UserNotFoundErrorSchema = common_1.ErrorResponseSchema.extend({
error: common_1.ErrorDetailsSchema.extend({
code: zod_1.z.literal('USER_NOT_FOUND'),
}),
});
exports.UserBadRequestErrorSchema = common_1.ErrorResponseSchema.extend({
error: common_1.ErrorDetailsSchema.extend({
code: zod_1.z.literal('INVALID_REQUEST'),
}),
});
exports.UserManagementErrorSchema = common_1.InternalServerErrorSchema.extend({
error: common_1.ErrorDetailsSchema.extend({
code: zod_1.z.literal('USER_MANAGEMENT_ERROR'),
}),
});