feat: Добавлен пакет с общими описаниями типов для бекенда и фронтенда
This commit is contained in:
103
packages/shared-types/index.ts
Normal file
103
packages/shared-types/index.ts
Normal 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;
|
||||
}
|
||||
|
||||
9
packages/shared-types/package.json
Normal file
9
packages/shared-types/package.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "@p1ctos4ve/shared-types",
|
||||
"version": "1.0.0",
|
||||
"main": "./index.ts",
|
||||
"types": "./index.ts",
|
||||
"exports": {
|
||||
".": "./index.ts"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user