|
1 | 1 | from datetime import datetime |
2 | | -from typing import Optional |
| 2 | +from typing import TYPE_CHECKING, Annotated |
3 | 3 |
|
4 | 4 | import strawberry |
| 5 | +import strawberry_django |
5 | 6 |
|
6 | | -from ..helpers.i18n import make_localized_resolver |
7 | | -from ..helpers.images import resolve_image |
8 | | -from ..helpers.maps import Map, resolve_map |
9 | | -from typing import TYPE_CHECKING, Annotated |
| 7 | +from api.helpers.i18n import make_localized_resolver |
| 8 | +from api.helpers.images import resolve_image |
| 9 | +from api.helpers.maps import Map, resolve_map |
| 10 | +from events import models |
10 | 11 |
|
11 | 12 | if TYPE_CHECKING: |
12 | 13 | from api.conferences.types import Conference |
13 | 14 |
|
14 | 15 |
|
15 | | -@strawberry.type |
| 16 | +@strawberry_django.type(models.Event) |
16 | 17 | class Event: |
17 | | - id: strawberry.ID |
| 18 | + id: strawberry.auto |
18 | 19 | conference: Annotated["Conference", strawberry.lazy("api.conferences.types")] |
19 | | - title: str = strawberry.field(resolver=make_localized_resolver("title")) |
20 | | - slug: str = strawberry.field(resolver=make_localized_resolver("slug")) |
21 | | - content: str = strawberry.field(resolver=make_localized_resolver("content")) |
22 | | - map: Optional[Map] = strawberry.field(resolver=resolve_map) |
23 | | - image: Optional[str] = strawberry.field(resolver=resolve_image) |
24 | | - location_name: Optional[str] |
25 | | - start: datetime |
26 | | - end: datetime |
| 20 | + title: str = strawberry_django.field( |
| 21 | + resolver=make_localized_resolver("title"), only=["title"] |
| 22 | + ) |
| 23 | + slug: str = strawberry_django.field( |
| 24 | + resolver=make_localized_resolver("slug"), only=["slug"] |
| 25 | + ) |
| 26 | + content: str = strawberry_django.field( |
| 27 | + resolver=make_localized_resolver("content"), only=["content"] |
| 28 | + ) |
| 29 | + map: Map | None = strawberry_django.field( |
| 30 | + resolver=resolve_map, |
| 31 | + only=["latitude", "longitude", "map_link"], |
| 32 | + ) |
| 33 | + image: str | None = strawberry_django.field( |
| 34 | + resolver=resolve_image, |
| 35 | + only=["image"], |
| 36 | + ) |
| 37 | + location_name: str | None = strawberry_django.field(only=["location_name"]) |
| 38 | + start: datetime = strawberry_django.field(only=["start"]) |
| 39 | + end: datetime = strawberry_django.field(only=["end"]) |
0 commit comments