init project

This commit is contained in:
Timi
2026-08-01 18:01:23 +08:00
parent 286fa1ba56
commit 11c48bf00c
107 changed files with 19350 additions and 1 deletions
+60
View File
@@ -0,0 +1,60 @@
import type { Attachment, Model, User } from "timi-web";
export type CustomerGender = "MALE" | "FEMALE";
export type BodyAreaValue = {
selectedCodeList: string[];
};
export type Customer = {
code?: string;
name?: string;
gender?: CustomerGender;
age?: number;
telephone?: string;
address?: string;
remark?: string;
disease?: string;
conditioningPart?: BodyAreaValue;
introducerCustomerId?: string;
creatorUserId?: string;
lastSignInAt?: number;
introducerCustomer?: Customer;
creatorUser?: Partial<User>;
invitedCount?: number;
attachmentList?: Attachment[];
attachmentIdList?: string[];
} & Model;
export type CustomerSearchReq = {
keyword?: string;
introducerCustomerId?: string;
};
export type CustomerTrendStatReq = {
beginCreatedAt: number;
endCreatedAt: number;
};
export type CustomerDailyStatView = {
dateValue?: number;
newCustomerCount?: number;
totalCustomerCount?: number;
};
export type CustomerGenderStatView = {
genderCode?: CustomerGender | "UNKNOWN";
count?: number;
};
export type CustomerInviteUpdateReq = {
customerId: string;
introducerCustomerId?: string;
};
export type QuickRegisterReq = {
customerCode: string;
registrationEventId: string;
remark?: string;
attachmentIdList?: string[];
};
+10
View File
@@ -0,0 +1,10 @@
import type { Model, Role, User } from "timi-web";
export type GaoUser = {
userId?: string;
enabled?: boolean;
remark?: string;
user?: Partial<User>;
roleList?: Array<Role | string>;
roleIdList?: string[];
} & Model;
+18
View File
@@ -0,0 +1,18 @@
import type { Model } from "timi-web";
export type RegistrationEventStatus = "ACTIVE" | "INACTIVE" | "DELETED";
export type RegistrationLimitType = "NONE" | "DAILY_HALF_DAY" | "NATURAL_DAY" | "INTERVAL_HOUR" | "NATURAL_MONTH" | "TOTAL_LIMIT";
export type RegistrationEvent = {
name: string;
description?: string;
color?: string;
status?: RegistrationEventStatus;
enabled?: boolean;
requirePhoto?: boolean;
limitType?: RegistrationLimitType;
limitValue?: number;
sort?: number;
roleCodeList?: string[];
} & Model;
+81
View File
@@ -0,0 +1,81 @@
import type { Attachment, Model, User } from "timi-web";
import type { Customer } from "@/types/Customer";
import type { RegistrationEvent } from "@/types/RegistrationEvent";
export type RegistrationEventRecord = {
customerId?: string;
registrationEventId?: string;
operatorUserId?: string;
remark?: string;
registeredAt?: number;
customer?: Customer;
registrationEvent?: RegistrationEvent;
operator?: Partial<User>;
attachmentList?: Array<Partial<Attachment>>;
attachmentIdList?: string[];
} & Model;
export type RegistrationEventRecordListItemView = {
id?: string;
customerId?: string;
customerName?: string;
customerPhotoAttachmentId?: string;
registrationEventId?: string;
registrationEventName?: string;
registeredAt?: number;
};
export type RegistrationEventRecordRangeReq = {
customerId?: string;
registrationEventId?: string;
registrationEventIdList?: string[];
keyword?: string;
beginRegisteredAt: number;
endRegisteredAt: number;
};
export type RegistrationEventRecordStatReq = {
customerId?: string;
beginRegisteredAt: number;
endRegisteredAt: number;
};
export type RegistrationEventRecordTrendStatReq = {
customerId?: string;
registrationEventId: string;
beginRegisteredAt: number;
endRegisteredAt: number;
};
export type CustomerRegisterStatView = {
customerId?: string;
customerName?: string;
registrationEventId?: string;
registrationEventName?: string;
count?: number;
latestRegisteredAt?: number;
};
export type RegistrationEventRecordDailyStatView = {
dateValue?: number;
dailyCount?: number;
totalCount?: number;
};
export type RegistrationEventRecordCalendarView = {
id?: string;
customerId?: string;
customerCode?: string;
customerName?: string;
registrationEventId?: string;
registeredAt?: number;
};
export type RegistrationEventRecordCreateReq = {
customerId?: string;
customerCode?: string;
registrationEventId: string;
remark?: string;
registeredAt?: number;
attachmentIdList?: string[];
};
+18
View File
@@ -0,0 +1,18 @@
declare module "browser-image-compression" {
export interface ImageCompressionOptions {
alwaysKeepResolution?: boolean;
exifOrientation?: number;
fileType?: string;
initialQuality?: number;
libURL?: string;
maxIteration?: number;
maxSizeMB?: number;
maxWidthOrHeight?: number;
onProgress?: (progress: number) => void;
preserveExif?: boolean;
signal?: AbortSignal;
useWebWorker?: boolean;
}
export default function imageCompression(file: File, options: ImageCompressionOptions): Promise<File>;
}