11# Copyright 2021 ACSONE SA/NV
22# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
33
4- from datetime import date
4+ from datetime import date , datetime
55from typing import List
66
77import pydantic
8+ from extendable_pydantic import ExtendableModelMeta
9+ from pydantic import BaseModel
810
9- from odoo .addons .event_rest_api .pydantic_models .event_info import (
10- EventInfo as BaseEventInfo ,
11- EventShortInfo as BaseEventShortInfo ,
12- )
1311from odoo .addons .mozaik_thesaurus_api .pydantic_models .thesaurus_term_info import (
1412 ThesaurusTermInfo ,
1513)
14+ from odoo .addons .pydantic import utils
1615
1716from .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
1820from .event_website_domain_info import EventWebsiteDomainInfo
1921from .partner_address_info import PartnerAddressInfo
2022from .partner_minimum_info import PartnerMinimumInfo
2123
2224
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
2435 image_url : str
2536 interests : List [ThesaurusTermInfo ] = pydantic .Field ([], alias = "interest_ids" )
2637 address : PartnerAddressInfo = pydantic .Field (None , alias = "address_id" )
@@ -35,8 +46,17 @@ class EventShortInfo(BaseEventShortInfo, extends=BaseEventShortInfo):
3546 is_published : bool = None
3647 is_headline : bool = None
3748
49+ class Config :
50+ orm_mode = True
51+ getter_dict = utils .GenericOdooGetter
52+
53+
54+ class EventInfo (EventShortInfo ):
3855
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
4060 publish_date : date = None
4161 questions : List [EventQuestionInfo ] = pydantic .Field ([], alias = "question_ids" )
4262 menu_register_cta : bool = None
0 commit comments