Skip to content
This repository was archived by the owner on Jul 17, 2025. It is now read-only.

Conversation

@suggestied
Copy link
Member

Refactor the project structure to follow clean architecture principles and implement dependency injection using get_it.

  • Rename Files and Directories

    • Rename files in lib/ui/screens to lib/presentation/screens.
    • Rename files in lib/ui/widgets to lib/presentation/widgets.
    • Rename files in lib/brick/models to lib/domain/models.
    • Rename files in lib/brick/adapters to lib/data/adapters.
    • Rename files in lib/brick/db to lib/data/db.
    • Rename lib/repositories/app_repository.dart to lib/data/repositories/app_repository.dart.
  • Add Controllers

    • Add HomeController to manage state and logic for HomeView.
    • Add LookbookController to manage state and logic for LookbookView.
    • Add WardrobeController to manage state and logic for WardrobeView.
  • Update Dependency Injection

    • Register AppRepository as a singleton in lib/di/service_locator.dart.
    • Add method to retrieve AppRepository instance.
  • Update Main File

    • Remove call to AppRepository().initialize().
    • Update setupLocator call to accept DatabaseFactory parameter.
  • Update Router

    • Use GoRouter with appRepository instance from service locator.
  • Update Screens

    • Update LookbookScreen to use LookbookController.
    • Update WardrobeScreen to use WardrobeController.

Refactor the project structure to follow clean architecture principles and implement dependency injection using `get_it`.

* **Rename Files and Directories**
  - Rename files in `lib/ui/screens` to `lib/presentation/screens`.
  - Rename files in `lib/ui/widgets` to `lib/presentation/widgets`.
  - Rename files in `lib/brick/models` to `lib/domain/models`.
  - Rename files in `lib/brick/adapters` to `lib/data/adapters`.
  - Rename files in `lib/brick/db` to `lib/data/db`.
  - Rename `lib/repositories/app_repository.dart` to `lib/data/repositories/app_repository.dart`.

* **Add Controllers**
  - Add `HomeController` to manage state and logic for `HomeView`.
  - Add `LookbookController` to manage state and logic for `LookbookView`.
  - Add `WardrobeController` to manage state and logic for `WardrobeView`.

* **Update Dependency Injection**
  - Register `AppRepository` as a singleton in `lib/di/service_locator.dart`.
  - Add method to retrieve `AppRepository` instance.

* **Update Main File**
  - Remove call to `AppRepository().initialize()`.
  - Update `setupLocator` call to accept `DatabaseFactory` parameter.

* **Update Router**
  - Use `GoRouter` with `appRepository` instance from service locator.

* **Update Screens**
  - Update `LookbookScreen` to use `LookbookController`.
  - Update `WardrobeScreen` to use `WardrobeController`.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants