79 lines
1.4 KiB
Markdown
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
|
|
```
|
|
|