Monorepo: consolidate 7 repos into one
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m5s

Combines shared, blog, market, cart, events, federation, and account
into a single repository. Eliminates submodule sync, sibling model
copying at build time, and per-app CI orchestration.

Changes:
- Remove per-app .git, .gitmodules, .gitea, submodule shared/ dirs
- Remove stale sibling model copies from each app
- Update all 6 Dockerfiles for monorepo build context (root = .)
- Add build directives to docker-compose.yml
- Add single .gitea/workflows/ci.yml with change detection
- Add .dockerignore for monorepo build context
- Create __init__.py for federation and account (cross-app imports)
This commit is contained in:
giles
2026-02-24 19:44:17 +00:00
commit f42042ccb7
895 changed files with 61147 additions and 0 deletions

20
shared/containers.py Normal file
View File

@@ -0,0 +1,20 @@
"""
Generic container concept — replaces hard-wired post_id FKs
with container_type + container_id soft references.
"""
from __future__ import annotations
class ContainerType:
PAGE = "page"
# Future: GROUP = "group", MARKET = "market", etc.
def container_filter(model, container_type: str, container_id: int):
"""Return SQLAlchemy filter clauses for a container reference."""
return [model.container_type == container_type, model.container_id == container_id]
def content_filter(model, content_type: str, content_id: int):
"""Return SQLAlchemy filter clauses for a content reference (e.g. CalendarEntryContent)."""
return [model.content_type == content_type, model.content_id == content_id]