validateFile method

Future<FileValidationResult> validateFile(
  1. String regionName
)

Validate that a region's file exists and optionally check its size.

Returns a FileValidationResult with details about the file state.

Implementation

Future<FileValidationResult> validateFile(String regionName) async {
  final metadata = getByRegion(regionName);
  if (metadata == null) {
    return FileValidationResult(
      regionName: regionName,
      exists: false,
      hasMetadata: false,
    );
  }

  final file = File(metadata.filePath);
  final exists = await file.exists();

  if (!exists) {
    return FileValidationResult(
      regionName: regionName,
      exists: false,
      hasMetadata: true,
      expectedPath: metadata.filePath,
    );
  }

  final actualSize = await file.length();
  final sizeMatches = actualSize == metadata.fileSize;

  return FileValidationResult(
    regionName: regionName,
    exists: true,
    hasMetadata: true,
    expectedPath: metadata.filePath,
    actualSize: actualSize,
    expectedSize: metadata.fileSize,
    sizeMatches: sizeMatches,
  );
}