mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-21 21:46:42 +02:00
feat: integrate uload and picture, unify package naming
- Add uload project with apps/web structure
- Reorganize from flat to monorepo structure
- Remove PocketBase binary and local data
- Update to pnpm and @uload/web namespace
- Add picture project to monorepo
- Remove embedded git repository
- Unify all package names to @{project}/{app} schema:
- @maerchenzauber/* (was @storyteller/*)
- @manacore/* (was manacore-*, manacore)
- @manadeck/* (was web, backend, manadeck)
- @memoro/* (was memoro-web, landing, memoro)
- @picture/* (already unified)
- @uload/web
- Add convenient dev scripts for all apps:
- pnpm dev:{project}:web
- pnpm dev:{project}:landing
- pnpm dev:{project}:mobile
- pnpm dev:{project}:backend
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
c6c4c5a552
commit
c712a2504a
1031 changed files with 189301 additions and 290 deletions
141
uload/backend/pb_schema.json
Normal file
141
uload/backend/pb_schema.json
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
{
|
||||
"collections": [
|
||||
{
|
||||
"id": "links",
|
||||
"name": "links",
|
||||
"type": "base",
|
||||
"system": false,
|
||||
"schema": [
|
||||
{
|
||||
"id": "title",
|
||||
"name": "title",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"options": {
|
||||
"min": 1,
|
||||
"max": 200
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "url",
|
||||
"name": "url",
|
||||
"type": "url",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"id": "short_code",
|
||||
"name": "short_code",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"unique": true,
|
||||
"options": {
|
||||
"min": 3,
|
||||
"max": 50,
|
||||
"pattern": "^[a-zA-Z0-9_-]+$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "user",
|
||||
"name": "user",
|
||||
"type": "relation",
|
||||
"required": true,
|
||||
"options": {
|
||||
"collectionId": "users",
|
||||
"cascadeDelete": true,
|
||||
"maxSelect": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "clicks",
|
||||
"name": "clicks",
|
||||
"type": "number",
|
||||
"required": false,
|
||||
"options": {
|
||||
"min": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "active",
|
||||
"name": "active",
|
||||
"type": "bool",
|
||||
"required": false,
|
||||
"options": {}
|
||||
}
|
||||
],
|
||||
"listRule": "@request.auth.id = user",
|
||||
"viewRule": "@request.auth.id = user || active = true",
|
||||
"createRule": "@request.auth.id != ''",
|
||||
"updateRule": "@request.auth.id = user",
|
||||
"deleteRule": "@request.auth.id = user"
|
||||
},
|
||||
{
|
||||
"id": "analytics",
|
||||
"name": "analytics",
|
||||
"type": "base",
|
||||
"system": false,
|
||||
"schema": [
|
||||
{
|
||||
"id": "link",
|
||||
"name": "link",
|
||||
"type": "relation",
|
||||
"required": true,
|
||||
"options": {
|
||||
"collectionId": "links",
|
||||
"cascadeDelete": true,
|
||||
"maxSelect": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ip",
|
||||
"name": "ip",
|
||||
"type": "text",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "user_agent",
|
||||
"name": "user_agent",
|
||||
"type": "text",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "referer",
|
||||
"name": "referer",
|
||||
"type": "text",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "country",
|
||||
"name": "country",
|
||||
"type": "text",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "device",
|
||||
"name": "device",
|
||||
"type": "text",
|
||||
"required": false
|
||||
}
|
||||
],
|
||||
"listRule": "@request.auth.id = link.user",
|
||||
"viewRule": "@request.auth.id = link.user",
|
||||
"createRule": "",
|
||||
"updateRule": null,
|
||||
"deleteRule": "@request.auth.id = link.user"
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"meta": {
|
||||
"appName": "uLoad",
|
||||
"appUrl": "https://your-domain.com",
|
||||
"hideControls": false,
|
||||
"senderName": "uLoad",
|
||||
"senderAddress": "noreply@your-domain.com",
|
||||
"verificationTemplate": {
|
||||
"body": "Hello,\n\nPlease verify your email by clicking the link below:\n\n{ACTION_URL}\n\nThanks,\nuLoad Team"
|
||||
},
|
||||
"resetPasswordTemplate": {
|
||||
"body": "Hello,\n\nYou requested to reset your password. Click the link below:\n\n{ACTION_URL}\n\nIf you didn't request this, please ignore this email.\n\nThanks,\nuLoad Team"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue