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