Move backend files to root level for cleaner GitHub display

- Move all backend files from swingmusic/ to root level
- Backend files now display directly on GitHub repository page
- Keep client applications as submodules (swingmusic-android, swingmusic-desktop, swingmusic-webclient)
- Update README to reflect new structure (no cd swingmusic needed)
- Cleaner, more professional GitHub repository layout

Files moved to root:
- src/ (main source code)
- pyproject.toml, requirements.txt, run.py
- swingmusic.spec, uv.lock, version.txt
- services/

Result: GitHub shows backend files directly while maintaining organized structure
This commit is contained in:
Tomas Dvorak
2026-03-17 22:37:49 +01:00
parent 297315f5ba
commit 38f1981283
206 changed files with 0 additions and 3 deletions
+35
View File
@@ -0,0 +1,35 @@
from dataclasses import asdict, field, dataclass
import json
@dataclass(slots=True)
class User:
id: int
image: str
password: str
username: str
roles: list[str]
extra: dict[str, str] = field(default_factory=dict)
# NOTE: roles: ['admin', 'user', 'curator']
roles: list[str] = field(default_factory=lambda: ["user"])
def todict(self):
this_dict = asdict(self)
del this_dict["password"]
if type(this_dict["roles"]) is str:
# INFO: this is an attempt to fix string roles!
try:
this_dict["roles"] = json.loads(this_dict["roles"])
except json.JSONDecodeError:
this_dict["roles"] = []
return this_dict
def todict_simplified(self):
return {
"id": self.id,
"username": self.username,
"firstname": self.extra["firstname"] if self.extra else "",
}