You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: movie.go
    path of file: ./repos/stash/pkg/models/jsonschema
    
    the code of the file until where you have to start completion: package jsonschema

import (
	"fmt"
	"os"

	jsoniter "github.com/json-iterator/go"

	"github.com/stashapp/stash/pkg/fsutil"
	"github.com/stashapp/stash/pkg/logger"
	"github.com/stashapp/stash/pkg/models/json"
)

type Movie struct {
	Name       string        `json:"name,omitempty"`
	Aliases    string        `json:"aliases,omitempty"`
	Duration   int           `json:"duration,omitempty"`
	Date       string        `json:"date,omitempty"`
	Rating     int           `json:"rating,omitempty"`
	Director   string        `json:"director,omitempty"`
	Synopsis   string        `json:"sy
    
func LoadMovieFile(filePath string) (*Movie, error) {
	var movie Movie
	file, err := os.Open(filePath)
	if err != nil {
		return nil, err
	}
	defer file.Close()
	var json = jsoniter.ConfigCompatibleWithStandardLibrary
	jsonParser := json.NewDecoder(file)
	err = jsonParser.Decode(&movie)
	if err != nil {
		return nil, err
	}
	if movie.Synopsis == "" {
		// keep backwards compatibility with pre #2664 builds
		// attempt to get the synopsis from the alternate (sypnopsis) key

		_, err = file.Seek(0, 0) // seek to start of file
		if err == nil {
			var synopsis MovieSynopsisBC
			err = jsonParser.Decode(&synopsis)
			if err == nil {
				movie.Synopsis = synopsis.Synopsis
				if movie.Synopsis != "" {
					logger.Debug("Movie synopsis retrieved from alternate key")
				}
			}
		}
	}
	return &movie, nil
}