Archived
1
0

feat: Добавлен пакет с общими описаниями типов для бекенда и фронтенда

This commit is contained in:
2025-11-19 10:14:37 +03:00
parent 6fd29f5408
commit 709054ed08
2 changed files with 112 additions and 0 deletions

View File

@ -0,0 +1,103 @@
export type Visibility = 'public' | 'link';
export interface User {
id: string;
email: string;
name: string;
image: string | null;
emailVerified: boolean;
createdAt: Date;
updatedAt: Date;
}
export interface Save {
id: number;
name: string;
type: string;
description: string;
tags: string[];
visibility: Visibility;
shareUrl?: string;
userId: string;
url: string;
s3Key: string;
fileSize: number;
mimeType: string;
createdAt: Date;
updatedAt: Date;
}
export interface SaveListItem extends Omit<Save, 'userId' | 's3Key' | 'fileSize' | 'mimeType'> {}
export interface ApiResponse<T> {
success: boolean;
data?: T;
error?: string;
}
export interface PaginatedResponse<T> {
items: T[];
total: number;
page: number;
limit: number;
}
export interface SignUpResponse {
token: string | null;
user: User;
}
export interface SignInResponse {
redirect: boolean;
token: string;
url: null;
user: User;
}
export interface SignOutResponse {
success: boolean;
}
export interface SaveResponse {
id: number;
name: string;
type: string;
url: string;
visibility: Visibility;
shareUrl?: string;
createdAt: string;
}
export interface SaveDetailResponse extends Save {}
export interface SaveUpdateResponse {
id: number;
name: string;
type: string;
description: string;
tags: string[];
visibility: Visibility;
shareUrl?: string;
updatedAt: string;
}
export interface DeleteSaveResponse {
success: boolean;
message: string;
}
export interface CreateSaveFromUrlRequest {
url: string;
name?: string;
description?: string;
tags?: string[];
visibility?: Visibility;
}
export interface UpdateSaveRequest {
name?: string;
description?: string;
tags?: string[];
visibility?: Visibility;
}

View File

@ -0,0 +1,9 @@
{
"name": "@p1ctos4ve/shared-types",
"version": "1.0.0",
"main": "./index.ts",
"types": "./index.ts",
"exports": {
".": "./index.ts"
}
}