name: Property-Management
packages:
  - "app/"
  - "packages/cs_domain/"
  - "packages/cs_resources/"
  - "packages/cs_router/"
  - "packages/cs_shared/"
  - "packages/cs_widgets/"
  - "packages/cs_plugin_basic/"
  - "packages/cs_plugin_platform/"
  - "packages/cs_initializer/"
  - "packages/cpt_auth/"
  - "packages/cpt_community/"
  - "packages/cpt_facility/"
  - "packages/cpt_form/"
  - "packages/cpt_main/"
  - "packages/cpt_notice_board/"
  - "packages/cpt_payment/"
  - "packages/cpt_profile/"
  - "packages/cpt_property/"
  - "packages/cpt_rewards/"
  - "packages/cpt_services/"


command:
  bootstrap:
    usePubspecOverrides: true


scripts:
  analyze:
    run: melos exec -- "flutter analyze"
    description: 运行 flutter analyze 执行优化命令

  pub_get_all:
    run: dart pub global run melos exec --flutter "flutter pub get"
    description: 在每个子组件中运行 flutter pub get，用来获取和安装这些包的所有依赖

  build_runner_all:
    run: dart pub global run melos exec -- "dart run build_runner build"
    description: 如果模块包含 build_runner，执行 build_runner build 命令
    filters:
      dependsOn:
        - build_runner

  build_runner_auth:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_auth" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in auth module

  build_runner_plugin_basic:
    run: cd "$MELOS_ROOT_PATH/packages/cs_plugin_basic" && flutter pub run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in cs_plugin_basic module

  build_runner_community:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_community" && flutter pub run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in community module

  build_runner_facility:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_facility" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in facility module

  build_runner_form:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_form" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in form module

  build_runner_main:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_main" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in main module

  build_runner_notice_board:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_notice_board" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in notice_board module

  build_runner_payment:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_payment" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in payment module

  build_runner_profile:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_profile" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in profile module

  build_runner_property:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_property" && flutter pub run build_runner build --delete-conflicting-outputs --verbose
    description: Run `dart run build_runner build` in property module

  watch_runner_property:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_property" && flutter pub run build_runner watch --delete-conflicting-outputs --verbose
    description: Run `dart run build_runner build` in property module

  build_runner_rewards:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_rewards" && dart run build_runner build --delete-conflicting-outputs
    description: Run `dart run build_runner build` in rewards module

  build_runner_services:
    run: cd "$MELOS_ROOT_PATH/packages/cpt_services" && flutter pub run build_runner build --delete-conflicting-outputs --verbose
    description: Run `dart run build_runner build` in services module

  clean_all:
    run: melos exec -- "flutter clean"
    description: Run `flutter clean` in all packages

  clean_app:
    run: cd "$MELOS_ROOT_PATH/app" && flutter clean
    description: Run `flutter clean` in app module

  run_app:
    run: cd "$MELOS_ROOT_PATH/app" && flutter run
    description: 运行App模块.

  run_app2:
    run: melos exec --scope="app" -- "flutter run"
    description: 运行App模块方式2.

  build_apk:
    run: cd "$MELOS_ROOT_PATH/app" && flutter build apk
    description: 编译安卓Release的APK格式安装包.

  build_aab:
    run: cd "$MELOS_ROOT_PATH/app" && flutter build appbundle
    description: 编译安卓Release的APK格式安装包.

  resource_get:
    run: |
      cd "$MELOS_ROOT_PATH/packages/cs_domain/" && flutter pub get
      melos exec --scope="cs_resources" -- "flutter pub get"
      cd "$MELOS_ROOT_PATH/packages/cs_widgets/" && flutter pub get
    description: 更新实体和资源模块

  format:
    run: melos exec -- "flutter format . --set-exit-if-changed"
    description: Run `flutter format .` in all packages

  test:
    run: melos exec --dir-exists=test -- "flutter test"
    description: Run `flutter test` in all packages
