frontend_projekt/KERNMODELL.md
2026-04-06 22:34:22 +02:00

79 lines
1.4 KiB
Markdown

# Kernmodell
Dieses Kernmodell beschreibt die wichtigsten Klassen, die OnlyPrompt fuer Login, Profile, Marketplace und Prompt-Kaeufe benoetigt.
## Klassen
### User
- `id: int`
- `username: string`
- `email: string`
- `passwordHash: string`
- `role: string`
- `createdAt: datetime`
### Profile
- `id: int`
- `userId: int`
- `displayName: string`
- `bio: string`
- `avatarUrl: string`
- `specialties: string`
### Prompt
- `id: int`
- `creatorId: int`
- `categoryId: int`
- `title: string`
- `description: string`
- `content: text`
- `price: decimal`
- `thumbnailUrl: string`
- `ratingAverage: float`
- `reviewCount: int`
- `status: string`
- `createdAt: datetime`
- `updatedAt: datetime`
### Category
- `id: int`
- `name: string`
- `slug: string`
### Purchase
- `id: int`
- `buyerId: int`
- `promptId: int`
- `pricePaid: decimal`
- `purchasedAt: datetime`
### Review
- `id: int`
- `promptId: int`
- `userId: int`
- `rating: int`
- `comment: string`
- `createdAt: datetime`
## Beziehungen
- Ein `User` hat genau ein `Profile`.
- Ein `User` kann viele `Prompts` erstellen.
- Ein `Prompt` gehoert zu genau einer `Category`.
- Ein `User` kann viele `Prompts` ueber `Purchase` kaufen.
- Ein `User` kann viele `Reviews` schreiben.
- Ein `Prompt` kann viele `Reviews` erhalten.
## UML-Kurzform
```text
User 1 --- 1 Profile
User 1 --- * Prompt
Category 1 --- * Prompt
User 1 --- * Purchase
Prompt 1 --- * Purchase
User 1 --- * Review
Prompt 1 --- * Review
```