File size: 1,375 Bytes
5417c06
 
0f206cd
 
 
 
ff7c379
0f206cd
 
 
 
 
 
 
ff7c379
0f206cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from pydantic import BaseModel

from dataclasses import dataclass, field
from typing import List, Dict

@dataclass
class Planet:
    name: str
    description: str
    accommodation: str
    activities: List[str]
    photography: str

@dataclass
class Category:
    budget_range: str
    planets: List[Planet] = field(default_factory=list)

@dataclass
class TravelAgency(BaseModel):
    name: str
    categories: Dict[str, Category] = field(default_factory=dict)

    def add_planet(self, category_name: str, budget_range: str, planet: Planet):
        # Ensure category exists, create if not
        if category_name not in self.categories:
            self.categories[category_name] = Category(budget_range=budget_range)
        self.categories[category_name].planets.append(planet)


# class Planet(BaseModel):
#     def __init__(self, name, atmosphere, species, signature_dish, activities):
#         self.name = name
#         self.atmosphere = atmosphere
#         self.species = species
#         self.signature_dish = signature_dish
#         self.activities = activities

#     def describe(self):
#         return f"Planet: {self.name}\n" \
#                f"Atmosphere: {self.atmosphere}\n" \
#                f"Species: {self.species}\n" \
#                f"Signature Dish: {self.signature_dish}\n" \
#                f"Activities: {', '.join(self.activities)}"