package models import ( "database/sql" ) type File struct { ID int OriginalName string Hash string HashAlgorithm string } func GetFileByID(db *sql.DB, id int64) (*File, error) { query := "SELECT id, original_name, hash, hash_algorithm FROM files WHERE id = ?" row := db.QueryRow(query, id) file := &File{} err := row.Scan(&file.ID, &file.OriginalName, &file.Hash, &file.HashAlgorithm) if err == sql.ErrNoRows { return nil, nil } if err != nil { return nil, err } return file, nil } func CreateFile(db *sql.DB, file File) (int64, error) { query := "INSERT INTO files (original_name, hash, hash_algorithm) VALUES (?, ?, ?)" result, err := db.Exec(query, file.OriginalName, file.Hash, file.HashAlgorithm) if err != nil { return 0, err } return result.LastInsertId() }