from __future__ import annotations from typing import Annotated from fastapi import Path TOKEN_URLSAFE_PATTERN = r"^karl_[A-Za-z0-9_-]+$" TOKEN_MIN_LENGTH = 37 TOKEN_MAX_LENGTH = 128 UpdateSlugPath = Annotated[ str, Path( min_length=TOKEN_MIN_LENGTH, max_length=TOKEN_MAX_LENGTH, pattern=TOKEN_URLSAFE_PATTERN, description="Private update URL value. Must start with karl_.", ), ] ManagementSlugPath = Annotated[ str, Path( min_length=TOKEN_MIN_LENGTH, max_length=TOKEN_MAX_LENGTH, pattern=TOKEN_URLSAFE_PATTERN, description="Private dashboard URL value. Must start with karl_.", ), ]