diff --git a/app/models/user.py b/app/models/user.py index a261697..c03b728 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -40,7 +40,9 @@ class User(BaseModel): ] expire_strategy: UserExpireStrategy expire_date: datetime | None = Field(None) - usage_duration: int | None = Field(None) + usage_duration: Annotated[ + int, Field(le=9999 * 365 * 24 * 60 * 60, description="usage_duration must be less than 9999 years") + ] | None = None, activation_deadline: datetime | None = Field(None) key: str = Field(default_factory=lambda: secrets.token_hex(16)) data_limit: int | None = Field( diff --git a/dashboard/src/modules/users/domain/schema.ts b/dashboard/src/modules/users/domain/schema.ts index 7830b62..f74e8f2 100644 --- a/dashboard/src/modules/users/domain/schema.ts +++ b/dashboard/src/modules/users/domain/schema.ts @@ -17,7 +17,8 @@ export const UserSchema = z.object({ .nullable() .optional(), expire_strategy: z.enum(["never", "fixed_date", "start_on_first_use"]), - usage_duration: z.number().nullable().optional(), + usage_duration: z.number().max(9999 * 365 * 24 * 60 * 60, { message: "usage_duration must be less than 3649635" }) + .nullable().optional(), activation_deadline: z.string().or(z.date()).nullable().optional(), expire_date: z.string().or(z.date()).nullable().optional(), service_ids: z