1
1
# Copyright 2021 ACSONE SA/NV
2
2
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
3
3
4
- from datetime import date
4
+ from datetime import date , datetime
5
5
from typing import List
6
6
7
7
import pydantic
8
+ from extendable_pydantic import ExtendableModelMeta
9
+ from pydantic import BaseModel
8
10
9
- from odoo .addons .event_rest_api .pydantic_models .event_info import (
10
- EventInfo as BaseEventInfo ,
11
- EventShortInfo as BaseEventShortInfo ,
12
- )
13
11
from odoo .addons .mozaik_thesaurus_api .pydantic_models .thesaurus_term_info import (
14
12
ThesaurusTermInfo ,
15
13
)
14
+ from odoo .addons .pydantic import utils
16
15
17
16
from .event_question_info import EventQuestionInfo
17
+ from .event_stage_info import EventStageInfo
18
+ from .event_ticket_info import EventTicketInfo
19
+ from .event_type_info import EventTypeInfo
18
20
from .event_website_domain_info import EventWebsiteDomainInfo
19
21
from .partner_address_info import PartnerAddressInfo
20
22
from .partner_minimum_info import PartnerMinimumInfo
21
23
22
24
23
- class EventShortInfo (BaseEventShortInfo , extends = BaseEventShortInfo ):
25
+ class EventShortInfo (BaseModel , metaclass = ExtendableModelMeta ):
26
+
27
+ id : int
28
+ name : str
29
+ date_begin : datetime
30
+ date_end : datetime
31
+ event_type : EventTypeInfo = pydantic .Field (None , alias = "event_type_id" )
32
+ stage : EventStageInfo = pydantic .Field (None , alias = "stage_id" )
33
+ note : str = None
34
+ write_date : datetime
24
35
image_url : str
25
36
interests : List [ThesaurusTermInfo ] = pydantic .Field ([], alias = "interest_ids" )
26
37
address : PartnerAddressInfo = pydantic .Field (None , alias = "address_id" )
@@ -35,8 +46,17 @@ class EventShortInfo(BaseEventShortInfo, extends=BaseEventShortInfo):
35
46
is_published : bool = None
36
47
is_headline : bool = None
37
48
49
+ class Config :
50
+ orm_mode = True
51
+ getter_dict = utils .GenericOdooGetter
52
+
53
+
54
+ class EventInfo (EventShortInfo ):
38
55
39
- class EventInfo (BaseEventInfo , extends = BaseEventInfo ):
56
+ event_tickets : List [EventTicketInfo ] = pydantic .Field ([], alias = "event_ticket_ids" )
57
+ seats_limited : bool
58
+ seats_max : int = None
59
+ seats_expected : int = None
40
60
publish_date : date = None
41
61
questions : List [EventQuestionInfo ] = pydantic .Field ([], alias = "question_ids" )
42
62
menu_register_cta : bool = None
0 commit comments