mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 15:39:40 +02:00
Move inactive projects out of active workspace: - bauntown (community website) - maerchenzauber (AI story generation) - memoro (voice memo app) - news (news aggregation) - nutriphi (nutrition tracking) - reader (reading app) - uload (URL shortener) - wisekeep (AI wisdom extraction) Update CLAUDE.md documentation: - Add presi to active projects - Document archived projects section - Update workspace configuration Archived apps can be re-activated by moving back to apps/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.4 KiB
3.4 KiB
Manuelle Schema-Erstellung für PocketBase
Da das pb_schema.json veraltet ist, erstelle die Collections manuell:
1. Users Collection
Bereits vorhanden (PocketBase Standard Auth Collection)
Füge diese zusätzlichen Felder hinzu:
username(text, unique, required)bio(text, optional)website(url, optional)location(text, optional)github(text, optional)twitter(text, optional)linkedin(text, optional)instagram(text, optional)publicProfile(bool, default: false)showClickStats(bool, default: true)isPremium(bool, default: false)stripeCustomerId(text, optional)stripeSubscriptionId(text, optional)subscriptionStatus(text, optional)planType(select: free, monthly, yearly, lifetime)
2. Links Collection
New → Collection → Base Collection
Name: links
Fields:
short_code(text, unique, required, min: 3, max: 50)custom_code(text, optional)original_url(url, required)title(text, optional, max: 200)description(text, optional, max: 500)user_id(relation → users, required, cascade delete)is_active(bool, default: true)password(text, optional)max_clicks(number, optional, min: 0)expires_at(date, optional)click_count(number, default: 0)qr_code(file, optional, single)tags(json, optional)utm_source(text, optional)utm_medium(text, optional)utm_campaign(text, optional)account_owner(relation → accounts, optional)
API Rules:
- List/View: @request.auth.id != "" && (@request.auth.id = user_id || is_active = true)
- Create: @request.auth.id != ""
- Update: @request.auth.id = user_id
- Delete: @request.auth.id = user_id
3. Clicks Collection
New → Collection → Base Collection
Name: clicks
Fields:
link_id(relation → links, required)ip_hash(text, optional)user_agent(text, optional)referer(text, optional)browser(text, optional)device_type(text, optional)os(text, optional)country(text, optional)city(text, optional)clicked_at(date, required)utm_source(text, optional)utm_medium(text, optional)utm_campaign(text, optional)
API Rules:
- List/View: @request.auth.id != "" && @request.auth.id = link_id.user_id
- Create: "" (public)
- Update: none
- Delete: @request.auth.id = link_id.user_id
4. Accounts Collection
New → Collection → Base Collection
Name: accounts
Fields:
name(text, required)owner(relation → users, required)members(relation → users, multiple)isActive(bool, default: true)planType(select: free, team, enterprise)settings(json, optional)
API Rules:
- List/View: @request.auth.id = owner || @request.auth.id in members
- Create: @request.auth.id != ""
- Update: @request.auth.id = owner
- Delete: @request.auth.id = owner
5. Payments Collection (Optional)
New → Collection → Base Collection
Name: payments
Fields:
user_id(relation → users, required)stripe_payment_intent_id(text, unique)amount(number, required)currency(text, default: "eur")status(select: pending, succeeded, failed)plan_type(select: monthly, yearly, lifetime)created_at(date, auto)
Quick Setup Script
Nach dem manuellen Erstellen der Collections, führe das Seed-Script aus:
node scripts/seed-local-db.js
Dies erstellt Test-Daten für alle Collections.