feat: Implement initial schema and add various API, service, and management command enhancements across the application.

This commit is contained in:
pacnpal
2026-01-01 15:13:01 -05:00
parent c95f99ca10
commit b243b17af7
413 changed files with 11164 additions and 17433 deletions

View File

@@ -26,7 +26,7 @@ user_roles = ChoiceGroup(
"css_class": "text-blue-600 bg-blue-50",
"permissions": ["create_content", "create_reviews", "create_lists"],
"sort_order": 1,
}
},
),
RichChoice(
value="MODERATOR",
@@ -38,7 +38,7 @@ user_roles = ChoiceGroup(
"css_class": "text-green-600 bg-green-50",
"permissions": ["moderate_content", "review_submissions", "manage_reports"],
"sort_order": 2,
}
},
),
RichChoice(
value="ADMIN",
@@ -50,7 +50,7 @@ user_roles = ChoiceGroup(
"css_class": "text-purple-600 bg-purple-50",
"permissions": ["manage_users", "site_configuration", "advanced_moderation"],
"sort_order": 3,
}
},
),
RichChoice(
value="SUPERUSER",
@@ -62,9 +62,9 @@ user_roles = ChoiceGroup(
"css_class": "text-red-600 bg-red-50",
"permissions": ["full_access", "system_administration", "database_access"],
"sort_order": 4,
}
},
),
]
],
)
@@ -83,13 +83,9 @@ theme_preferences = ChoiceGroup(
"color": "yellow",
"icon": "sun",
"css_class": "text-yellow-600 bg-yellow-50",
"preview_colors": {
"background": "#ffffff",
"text": "#1f2937",
"accent": "#3b82f6"
},
"preview_colors": {"background": "#ffffff", "text": "#1f2937", "accent": "#3b82f6"},
"sort_order": 1,
}
},
),
RichChoice(
value="dark",
@@ -99,15 +95,11 @@ theme_preferences = ChoiceGroup(
"color": "gray",
"icon": "moon",
"css_class": "text-gray-600 bg-gray-50",
"preview_colors": {
"background": "#1f2937",
"text": "#f9fafb",
"accent": "#60a5fa"
},
"preview_colors": {"background": "#1f2937", "text": "#f9fafb", "accent": "#60a5fa"},
"sort_order": 2,
}
},
),
]
],
)
@@ -133,7 +125,7 @@ unit_systems = ChoiceGroup(
"large_distance": "km",
},
"sort_order": 1,
}
},
),
RichChoice(
value="imperial",
@@ -150,9 +142,9 @@ unit_systems = ChoiceGroup(
"large_distance": "mi",
},
"sort_order": 2,
}
},
),
]
],
)
@@ -177,10 +169,10 @@ privacy_levels = ChoiceGroup(
"Profile visible to all users",
"Activity appears in public feeds",
"Searchable by search engines",
"Can be found by username search"
"Can be found by username search",
],
"sort_order": 1,
}
},
),
RichChoice(
value="friends",
@@ -196,10 +188,10 @@ privacy_levels = ChoiceGroup(
"Profile visible only to friends",
"Activity hidden from public feeds",
"Not searchable by search engines",
"Requires friend request approval"
"Requires friend request approval",
],
"sort_order": 2,
}
},
),
RichChoice(
value="private",
@@ -215,12 +207,12 @@ privacy_levels = ChoiceGroup(
"Profile completely hidden",
"No activity in any feeds",
"Not discoverable by other users",
"Maximum privacy protection"
"Maximum privacy protection",
],
"sort_order": 3,
}
},
),
]
],
)
@@ -242,7 +234,7 @@ top_list_categories = ChoiceGroup(
"ride_category": "roller_coaster",
"typical_list_size": 10,
"sort_order": 1,
}
},
),
RichChoice(
value="DR",
@@ -255,7 +247,7 @@ top_list_categories = ChoiceGroup(
"ride_category": "dark_ride",
"typical_list_size": 10,
"sort_order": 2,
}
},
),
RichChoice(
value="FR",
@@ -268,7 +260,7 @@ top_list_categories = ChoiceGroup(
"ride_category": "flat_ride",
"typical_list_size": 10,
"sort_order": 3,
}
},
),
RichChoice(
value="WR",
@@ -281,7 +273,7 @@ top_list_categories = ChoiceGroup(
"ride_category": "water_ride",
"typical_list_size": 10,
"sort_order": 4,
}
},
),
RichChoice(
value="PK",
@@ -294,9 +286,9 @@ top_list_categories = ChoiceGroup(
"entity_type": "park",
"typical_list_size": 10,
"sort_order": 5,
}
},
),
]
],
)
@@ -320,7 +312,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "push", "inapp"],
"priority": "normal",
"sort_order": 1,
}
},
),
RichChoice(
value="submission_rejected",
@@ -334,7 +326,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "push", "inapp"],
"priority": "normal",
"sort_order": 2,
}
},
),
RichChoice(
value="submission_pending",
@@ -348,7 +340,7 @@ notification_types = ChoiceGroup(
"default_channels": ["inapp"],
"priority": "low",
"sort_order": 3,
}
},
),
# Review related
RichChoice(
@@ -363,7 +355,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "push", "inapp"],
"priority": "normal",
"sort_order": 4,
}
},
),
RichChoice(
value="review_helpful",
@@ -377,7 +369,7 @@ notification_types = ChoiceGroup(
"default_channels": ["push", "inapp"],
"priority": "low",
"sort_order": 5,
}
},
),
# Social related
RichChoice(
@@ -392,7 +384,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "push", "inapp"],
"priority": "normal",
"sort_order": 6,
}
},
),
RichChoice(
value="friend_accepted",
@@ -406,7 +398,7 @@ notification_types = ChoiceGroup(
"default_channels": ["push", "inapp"],
"priority": "low",
"sort_order": 7,
}
},
),
RichChoice(
value="message_received",
@@ -420,7 +412,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "push", "inapp"],
"priority": "normal",
"sort_order": 8,
}
},
),
RichChoice(
value="profile_comment",
@@ -434,7 +426,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "push", "inapp"],
"priority": "normal",
"sort_order": 9,
}
},
),
# System related
RichChoice(
@@ -449,7 +441,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "inapp"],
"priority": "normal",
"sort_order": 10,
}
},
),
RichChoice(
value="account_security",
@@ -463,7 +455,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "push", "inapp"],
"priority": "high",
"sort_order": 11,
}
},
),
RichChoice(
value="feature_update",
@@ -477,7 +469,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "inapp"],
"priority": "low",
"sort_order": 12,
}
},
),
RichChoice(
value="maintenance",
@@ -491,7 +483,7 @@ notification_types = ChoiceGroup(
"default_channels": ["email", "inapp"],
"priority": "normal",
"sort_order": 13,
}
},
),
# Achievement related
RichChoice(
@@ -506,7 +498,7 @@ notification_types = ChoiceGroup(
"default_channels": ["push", "inapp"],
"priority": "low",
"sort_order": 14,
}
},
),
RichChoice(
value="milestone_reached",
@@ -520,9 +512,9 @@ notification_types = ChoiceGroup(
"default_channels": ["push", "inapp"],
"priority": "low",
"sort_order": 15,
}
},
),
]
],
)
@@ -545,7 +537,7 @@ notification_priorities = ChoiceGroup(
"batch_eligible": True,
"delay_minutes": 60,
"sort_order": 1,
}
},
),
RichChoice(
value="normal",
@@ -559,7 +551,7 @@ notification_priorities = ChoiceGroup(
"batch_eligible": True,
"delay_minutes": 15,
"sort_order": 2,
}
},
),
RichChoice(
value="high",
@@ -573,7 +565,7 @@ notification_priorities = ChoiceGroup(
"batch_eligible": False,
"delay_minutes": 0,
"sort_order": 3,
}
},
),
RichChoice(
value="urgent",
@@ -588,9 +580,9 @@ notification_priorities = ChoiceGroup(
"delay_minutes": 0,
"bypass_preferences": True,
"sort_order": 4,
}
},
),
]
],
)