project-standalo-note-to-app/types/api-types.ts

223 lines
5.9 KiB
TypeScript

/**
* Auto-generated API types from design document
* Generated at: 2025-12-19T06:09:11.387541
* DO NOT EDIT - Regenerate with generate_types.py
*/
/** Request body for POST /api/auth/register - Register a new user */
export interface RegisterUserRequest {
/** User email address */
email: string;
/** User display name */
name: string;
/** Password (min 8 characters) */
password: string;
}
/** Response for POST /api/auth/register (status 201) - User created successfully */
export interface RegisterUserResponse {
id: string;
email: string;
name: string;
createdAt: string;
}
/** Error response for POST /api/auth/register (status 400) - Validation error */
export interface RegisterUserError400 {
error: string;
}
/** Error response for POST /api/auth/register (status 409) - Email already exists */
export interface RegisterUserError409 {
error: string;
}
/** Request body for POST /api/auth/login - Login user */
export interface LoginUserRequest {
/** User email */
email: string;
/** User password */
password: string;
}
/** Response for POST /api/auth/login (status 200) - Login successful */
export interface LoginUserResponse {
user: Record<string, unknown>;
token: string;
}
/** Error response for POST /api/auth/login (status 401) - Invalid credentials */
export interface LoginUserError401 {
error: string;
}
/** Request body for POST /api/auth/logout - Logout user */
export interface LogoutUserRequest {
}
/** Response for POST /api/auth/logout (status 200) - Logout successful */
export interface LogoutUserResponse {
success: boolean;
}
/** Response for GET /api/auth/me (status 200) - User data */
export interface GetCurrentUserResponse {
id: string;
email: string;
name: string;
createdAt: string;
}
/** Error response for GET /api/auth/me (status 401) - Not authenticated */
export interface GetCurrentUserError401 {
error: string;
}
/** Response for GET /api/recordings (status 200) - Recordings list */
export interface ListRecordingsResponse {
recordings: unknown[];
total: number;
}
/** Request body for POST /api/recordings - Create new recording */
export interface CreateRecordingRequest {
/** Audio file (webm, mp3, wav) */
audio: unknown;
/** Recording title (auto-generated if not provided) */
title?: string;
/** Duration in seconds */
duration: number;
}
/** Response for POST /api/recordings (status 201) - Recording created */
export interface CreateRecordingResponse {
id: string;
title: string;
audioFilePath: string;
duration: number;
createdAt: string;
}
/** Error response for POST /api/recordings (status 400) - Invalid audio file */
export interface CreateRecordingError400 {
error: string;
}
/** Response for GET /api/recordings/[id] (status 200) - Recording details */
export interface GetRecordingResponse {
id: string;
title: string;
audioFilePath: string;
duration: number;
transcript: string;
summary: string;
isTranscribing: boolean;
createdAt: string;
}
/** Error response for GET /api/recordings/[id] (status 404) - Recording not found */
export interface GetRecordingError404 {
error: string;
}
/** Response for DELETE /api/recordings/[id] (status 200) - Recording deleted */
export interface DeleteRecordingResponse {
success: boolean;
}
/** Error response for DELETE /api/recordings/[id] (status 404) - Recording not found */
export interface DeleteRecordingError404 {
error: string;
}
/** Request body for POST /api/recordings/[id]/transcribe - Transcribe recording */
export interface TranscribeRecordingRequest {
}
/** Response for POST /api/recordings/[id]/transcribe (status 200) - Transcription started */
export interface TranscribeRecordingResponse {
recordingId: string;
isTranscribing: boolean;
}
/** Error response for POST /api/recordings/[id]/transcribe (status 404) - Recording not found */
export interface TranscribeRecordingError404 {
error: string;
}
/** Request body for POST /api/recordings/[id]/summarize - Summarize recording */
export interface SummarizeRecordingRequest {
}
/** Response for POST /api/recordings/[id]/summarize (status 200) - Summary generated */
export interface SummarizeRecordingResponse {
recordingId: string;
summary: string;
}
/** Error response for POST /api/recordings/[id]/summarize (status 400) - No transcript available */
export interface SummarizeRecordingError400 {
error: string;
}
/** Error response for POST /api/recordings/[id]/summarize (status 404) - Recording not found */
export interface SummarizeRecordingError404 {
error: string;
}
/** Response for GET /api/apps (status 200) - Apps list */
export interface ListAppsResponse {
apps: unknown[];
total: number;
}
/** Request body for POST /api/apps/generate - Generate app from recording */
export interface GenerateAppRequest {
/** Source recording ID */
recordingId: string;
}
/** Response for POST /api/apps/generate (status 201) - App generation started */
export interface GenerateAppResponse {
id: string;
recordingId: string;
status: string;
}
/** Error response for POST /api/apps/generate (status 400) - Recording has no summary */
export interface GenerateAppError400 {
error: string;
}
/** Error response for POST /api/apps/generate (status 404) - Recording not found */
export interface GenerateAppError404 {
error: string;
}
/** Response for GET /api/apps/[id] (status 200) - App details */
export interface GetAppResponse {
id: string;
recordingId: string;
title: string;
description: string;
htmlContent: string;
appType: string;
status: string;
createdAt: string;
}
/** Error response for GET /api/apps/[id] (status 404) - App not found */
export interface GetAppError404 {
error: string;
}
/** Response for DELETE /api/apps/[id] (status 200) - App deleted */
export interface DeleteAppResponse {
success: boolean;
}
/** Error response for DELETE /api/apps/[id] (status 404) - App not found */
export interface DeleteAppError404 {
error: string;
}