// Path: src/main/java/ninja/eivind/hotsreplayuploader/providers/Provider.java
// @Component
// public abstract class Provider {
// 
//     private final String name;
// 
//     public Provider(String name) {
//         this.name = name;
//     }
// 
//     public abstract Status upload(ReplayFile replayFile);
// 
//     public abstract Status getPreStatus(Replay replay);
// 
//     public String getName() {
//         return name;
//     }
// }


import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import ninja.eivind.hotsreplayuploader.providers.Provider;
// Copyright 2015 Eivind Vegsundvåg
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package ninja.eivind.hotsreplayuploader.models;


/**
 * Defines a more specific upload status by adding a specific host to an {@link Status}.
 */
@DatabaseTable
public class UploadStatus {

    @DatabaseField(generatedId = true)
    private Long id;
    @DatabaseField(width = 15)
    private String host;
    @DatabaseField
    private Status status;
    @DatabaseField(foreign = true, foreignAutoCreate = true)
    private ReplayFile replayFile;

    public UploadStatus() {

    }

// Path: src/main/java/ninja/eivind/hotsreplayuploader/providers/Provider.java
// @Component
// public abstract class Provider {
// 
//     private final String name;
// 
//     public Provider(String name) {
//         this.name = name;
//     }
// 
//     public abstract Status upload(ReplayFile replayFile);
// 
//     public abstract Status getPreStatus(Replay replay);
// 
//     public String getName() {
//         return name;
//     }
// }


// Path: src/main/java/ninja/eivind/hotsreplayuploader/models/UploadStatus.java
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import ninja.eivind.hotsreplayuploader.providers.Provider;

// Copyright 2015 Eivind Vegsundvåg
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package ninja.eivind.hotsreplayuploader.models;


/**
 * Defines a more specific upload status by adding a specific host to an {@link Status}.
 */
@DatabaseTable
public class UploadStatus {

    @DatabaseField(generatedId = true)
    private Long id;
    @DatabaseField(width = 15)
    private String host;
    @DatabaseField
    private Status status;
    @DatabaseField(foreign = true, foreignAutoCreate = true)
    private ReplayFile replayFile;

    public UploadStatus() {

    }

    public UploadStatus(final Provider host) {