1#!/usr/bin/env python3
2
3#    Kosmorrolib - The Library To Compute Your Ephemerides
4#    Copyright (C) 2021  Jérôme Deuchnord <jerome@deuchnord.fr>
5#
6#    This program is free software: you can redistribute it and/or modify
7#    it under the terms of the GNU Affero General Public License as
8#    published by the Free Software Foundation, either version 3 of the
9#    License, or (at your option) any later version.
10#
11#    This program is distributed in the hope that it will be useful,
12#    but WITHOUT ANY WARRANTY; without even the implied warranty of
13#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14#    GNU Affero General Public License for more details.
15#
16#    You should have received a copy of the GNU Affero General Public License
17#    along with this program.  If not, see <https://www.gnu.org/licenses/>.
18
19from enum import Enum
20
21
22class MoonPhaseType(Enum):
23    """An enumeration of moon phases."""
24
25    NEW_MOON = 0
26    WAXING_CRESCENT = 1
27    FIRST_QUARTER = 2
28    WAXING_GIBBOUS = 3
29    FULL_MOON = 4
30    WANING_GIBBOUS = 5
31    LAST_QUARTER = 6
32    WANING_CRESCENT = 7
33
34
35class SeasonType(Enum):
36    MARCH_EQUINOX = 0
37    JUNE_SOLSTICE = 1
38    SEPTEMBER_EQUINOX = 2
39    DECEMBER_SOLSTICE = 3
40
41
42class EventType(Enum):
43    """An enumeration for the supported event types."""
44
45    OPPOSITION = 1
46    CONJUNCTION = 2
47    OCCULTATION = 3
48    MAXIMAL_ELONGATION = 4
49    PERIGEE = 5
50    APOGEE = 6
51    SEASON_CHANGE = 7
52    LUNAR_ECLIPSE = 8
53
54
55class LunarEclipseType(Enum):
56    """An enumeration of lunar eclipse types"""
57
58    PENUMBRAL = 0
59    PARTIAL = 1
60    TOTAL = 2
61
62
63class ObjectType(Enum):
64    """An enumeration of object types"""
65
66    STAR = 0
67    PLANET = 1
68    DWARF_PLANET = 11
69    SATELLITE = 2
70
71
72class ObjectIdentifier(Enum):
73    """An enumeration of identifiers for objects"""
74
75    SUN = 0
76    EARTH = 1
77    MOON = 11
78    MERCURY = 2
79    VENUS = 3
80    MARS = 4
81    JUPITER = 5
82    SATURN = 6
83    URANUS = 7
84    NEPTUNE = 8
85    PLUTO = 9
86