Refactor API structure and add comprehensive user management features

- Restructure API v1 with improved serializers organization
- Add user deletion requests and moderation queue system
- Implement bulk moderation operations and permissions
- Add user profile enhancements with display names and avatars
- Expand ride and park API endpoints with better filtering
- Add manufacturer API with detailed ride relationships
- Improve authentication flows and error handling
- Update frontend documentation and API specifications
This commit is contained in:
pacnpal
2025-08-29 16:03:51 -04:00
parent 7b9f64be72
commit bb7da85516
92 changed files with 19690 additions and 9076 deletions

View File

@@ -17,7 +17,6 @@ DATABASE_URL = config("DATABASE_URL")
CACHE_URL = config("CACHE_URL", default="locmem://")
EMAIL_URL = config("EMAIL_URL", default="console://")
REDIS_URL = config("REDIS_URL", default="redis://127.0.0.1:6379/1")
CORS_ALLOW_ALL_ORIGINS = config("CORS_ALLOW_ALL_ORIGINS", default=False, cast=bool)
CORS_ALLOWED_ORIGINS = config("CORS_ALLOWED_ORIGINS", default=[])
API_RATE_LIMIT_PER_MINUTE = config("API_RATE_LIMIT_PER_MINUTE", default=60)
API_RATE_LIMIT_PER_HOUR = config("API_RATE_LIMIT_PER_HOUR", default=1000)
@@ -47,8 +46,9 @@ SECRET_KEY = config("SECRET_KEY")
ALLOWED_HOSTS = config("ALLOWED_HOSTS")
# CSRF trusted origins
CSRF_TRUSTED_ORIGINS = config("CSRF_TRUSTED_ORIGINS",
default=[]) # type: ignore[arg-type]
CSRF_TRUSTED_ORIGINS = config(
"CSRF_TRUSTED_ORIGINS", default=[]
) # type: ignore[arg-type]
# Application definition
DJANGO_APPS = [
@@ -88,6 +88,7 @@ THIRD_PARTY_APPS = [
"health_check.contrib.redis",
"django_celery_beat", # Celery beat scheduler
"django_celery_results", # Celery result backend
"django_extensions", # Django Extensions for enhanced development tools
]
LOCAL_APPS = [
@@ -269,9 +270,9 @@ AUTH_USER_MODEL = "accounts.User"
AUTOCOMPLETE_BLOCK_UNAUTHENTICATED = False
# Tailwind configuration
TAILWIND_CLI_CONFIG_FILE = BASE_DIR / "tailwind.config.js"
TAILWIND_CLI_SRC_CSS = BASE_DIR / "static" / "css" / "src" / "input.css"
TAILWIND_CLI_DIST_CSS = BASE_DIR / "static" / "css" / "tailwind.css"
TAILWIND_CLI_CONFIG_FILE = "tailwind.config.js"
TAILWIND_CLI_SRC_CSS = "static/css/src/input.css"
TAILWIND_CLI_DIST_CSS = "css/tailwind.css"
# Test runner
TEST_RUNNER = "django.test.runner.DiscoverRunner"
@@ -323,17 +324,19 @@ REST_FRAMEWORK = {
}
# CORS Settings for API
CORS_ALLOWED_ORIGINS = config("CORS_ALLOWED_ORIGINS",
default=[]) # type: ignore[arg-type]
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_ALL_ORIGINS = config(
"CORS_ALLOW_ALL_ORIGINS", default=False, cast=bool) # type: ignore[arg-type]
"CORS_ALLOW_ALL_ORIGINS", default=False, cast=bool
) # type: ignore[arg-type]
API_RATE_LIMIT_PER_MINUTE = config(
"API_RATE_LIMIT_PER_MINUTE", default=60, cast=int) # type: ignore[arg-type]
"API_RATE_LIMIT_PER_MINUTE", default=60, cast=int
) # type: ignore[arg-type]
API_RATE_LIMIT_PER_HOUR = config(
"API_RATE_LIMIT_PER_HOUR", default=1000, cast=int) # type: ignore[arg-type]
"API_RATE_LIMIT_PER_HOUR", default=1000, cast=int
) # type: ignore[arg-type]
SPECTACULAR_SETTINGS = {
"TITLE": "ThrillWiki API",
"DESCRIPTION": "Comprehensive theme park and ride information API",

View File

@@ -4,30 +4,7 @@ Local development settings for thrillwiki project.
from ..settings import database
import logging
from .base import (
BASE_DIR,
INSTALLED_APPS,
MIDDLEWARE,
STATIC_ROOT,
STATIC_URL,
ROOT_URLCONF,
AUTH_PASSWORD_VALIDATORS,
AUTH_USER_MODEL,
TEMPLATES,
SECRET_KEY,
SPECTACULAR_SETTINGS,
REST_FRAMEWORK,
)
SECRET_KEY = SECRET_KEY
SPECTACULAR_SETTINGS = SPECTACULAR_SETTINGS
REST_FRAMEWORK = REST_FRAMEWORK
TEMPLATES = TEMPLATES
ROOT_URLCONF = ROOT_URLCONF
AUTH_PASSWORD_VALIDATORS = AUTH_PASSWORD_VALIDATORS
AUTH_USER_MODEL = AUTH_USER_MODEL
STATIC_ROOT = STATIC_ROOT
STATIC_URL = STATIC_URL
from .base import *
# Import database configuration
DATABASES = database.DATABASES