"""
One module per area, imported here so Django finds them.

Phase 2 added `workspace.py` (Space, Page), Phase 3 `tasks.py`, Phase 4
`goals.py`, Phase 5 `calendar.py`, Phase 6 `notes.py`, Phase 7 `habits.py` and
Phase 8 `budget.py`, Phase 9 `bookshelf.py`, Phase 10 `focus.py` and Phase 11
`capture.py`. That is every slice: the model layer is complete.

**IMPORT ORDER IS LOAD-BEARING.** `goals` comes before `tasks` because
`Task.goal` is a FK to `Goal`, and `tasks` before `calendar` because
`Event.task` is a FK to `Task`, and `tasks` before `focus` for the same reason.
The one edge that would close a circle —
`Task.calendar_event` pointing back at `Event` — names its target as the string
`'lifey_api.Event'` instead, which Django resolves after every model is loaded.

One app rather than nine: nine apps means nine migrations/ trees and nine
admin.py files for a data model of about twelve tables.
"""

from .focus import FOCUS_LIMITS, FOCUS_MODES, FocusSession
from .goals import DIAGRAM_STYLES, GOAL_COLORS, GOAL_STATUSES, LEGACY_GOAL_STATUSES, Goal
from .tasks import LEGACY_STATUSES, TASK_PRIORITIES, TASK_STATUSES, Task
from .calendar import Event  # noqa: E402  — after `tasks`; see the docstring
from .capture import Capture
from .bookshelf import BOOK_STATUSES, BOOK_UNITS, LEGACY_BOOK_STATUSES, Book
from .budget import TRANSACTION_KINDS, Transaction
from .habits import DEFAULT_SCHEDULE, HISTORY_DAYS, SCHEDULE_KINDS, Habit
from .notes import Note
from .workspace import PAGE_TYPE_IDS, Page, Space

__all__ = [
    'DIAGRAM_STYLES',
    'Event',
    'DEFAULT_SCHEDULE',
    'FOCUS_LIMITS',
    'FOCUS_MODES',
    'FocusSession',
    'GOAL_COLORS',
    'GOAL_STATUSES',
    'Goal',
    'HISTORY_DAYS',
    'Habit',
    'LEGACY_BOOK_STATUSES',
    'LEGACY_GOAL_STATUSES',
    'LEGACY_STATUSES',
    'Note',
    'PAGE_TYPE_IDS',
    'SCHEDULE_KINDS',
    'Page',
    'Space',
    'TASK_PRIORITIES',
    'TRANSACTION_KINDS',
    'TASK_STATUSES',
    'Task',
    'Transaction',
]
