hunk.code_window:   typesense:
       container_name: immich_typesense
       image: typesense/typesense:0.24.1
       environment:
         - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
         - TYPESENSE_DATA_DIR=/data
       logging:
         driver: none
  
hunk.labels: keep keep keep replace keep keep keep keep keep
hunk.after_edit:     image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
  
hunk.file_path: docker/docker-compose.dev.yml
hunk.type: replace
file: import 'package:flutter/material.dart';
  import 'package:hooks_riverpod/hooks_riverpod.dart';
  import 'package:immich_mobile/shared/providers/api.provider.dart';
  import 'package:immich_mobile/shared/services/api.service.dart';
  import 'package:openapi/api.dart';
  
  final serverInfoServiceProvider = Provider(
    (ref) => ServerInfoService(
      ref.watch(apiServiceProvider),
    ),
  );
  
  class ServerInfoService {
    final ApiService _apiService;
  
    ServerInfoService(this._apiService);
  
    Future<ServerInfoResponseDto?> getServerInfo() async {
      try {
        return await _apiService.serverInfoApi.getServerInfo();
      } catch (e) {
        debugPrint("Error [getServerInfo] ${e.toString()}");
        return null;
      }
    }
  
    Future<ServerVersionReponseDto?> getServerVersion() async {
      try {
        return await _apiService.serverInfoApi.getServerVersion();
      } catch (e) {
        debugPrint("Error getting server info");
        return null;
      }
    }
  }
  