# Role strings (mirror Role enum in models/user.py)
ROLE_SUPERADMIN = "SUPERADMIN"
ROLE_ADMIN = "ADMIN"
ROLE_USERS = "USERS"

# Token types
TOKEN_TYPE_ACCESS = "access"
TOKEN_TYPE_REFRESH = "refresh"

# Default pagination
DEFAULT_PAGE = 1
DEFAULT_PAGE_SIZE = 20
MAX_PAGE_SIZE = 100

# Extensions
ALLOWED_IMAGE_EXTENSIONS = {"jpg", "jpeg", "png"}
ALLOWED_PSD_EXTENSIONS = {"psd"}
ALLOWED_PROFILE_IMAGE_EXTENSIONS = {"jpg", "jpeg", "png"}

# PSD layer related
KEYWORDS = ("design", "yourdesign", "artwork", "print", "placeholder", "image", "frame")
LOGO_LAYER = ("stamp", "logo", "watermark")

# Error messages
ERR_USER_NOT_FOUND = "User not found."
ERR_INVALID_CREDENTIALS = "Incorrect email or password."
ERR_EMAIL_REGISTERED = "Email is already registered."
ERR_INACTIVE_USER = "User is inactive."
ERR_USER_DELETED = "User is deleted."
ERR_FORBIDDEN = "Operation not permitted for your role."
ERR_FILE_INVALID = "Invalid or unsupported file."
ERR_OLD_PASSWORD = "Incorrect old password."
ERR_INVALID_TOKEN = "Invalid token type"
ERR_REFRESH_TOKEN = "Invalid or expired refresh token"
ERR_NOT_VALID_CRED = "Could not validate credentials"
ERR_NO_SUB = "Missing subject in token"
ERR_PASSWORD_LEN = "Password must be at least 8 characters long."
ERR_PASSWORD_NUMBER = "Password must contain at least one number."
ERR_PASSWORD_SPECIAL_CHAR = "Password must contain at least one special character."
ERR_ONLY_SUPERADMIN_CAN_CREATE_ADMINS = "Only SUPERADMIN can create admins."
ERR_ADMINS_CAN_DELETE_ONLY_STANDARD_USERS = "Admins can delete only standard users."
ERR_FIELD_UPDATE = "Provide at least one field to update"

# Generic Errors
ERR_UNEXPECTED = "An unexpected error occurred."
ERR_FILE_INVALID = "Invalid or corrupted file."
ERR_FILE_TOO_LARGE = "Uploaded file exceeds maximum allowed size."
ERR_NOT_FOUND = "Resource not found."
ERR_UNAUTHORIZED = "You are not authorized to perform this action."
ERR_FORBIDDEN = "Access denied."
ERR_VALIDATION = "Validation error occurred."
ERR_IMG_WIDTH_HEIGHT = "Source image has zero width/height."

# Product Template Errors
ERR_PSD_PROCESSING_FAILED = "Failed to process PSD file."
ERR_PREVIEW_FAILED = "Failed to generate preview image."
ERR_PSD_SAVE_FAILED = "Unable to save PSD file."
ERR_RETRIEVE_PSD = "Could not retrieve templates."
ERR_UPDATE_TEMPLATE = "Failed to update template."
ERR_DELETE_TEMPLATE = "Failed to delete template."
ERR_PSD_EXT = "Uploaded file must be a PSD."
ERR_OVERLAY_EXT = "Overlay image must be PNG or JPG."