"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const types = {
    string: Object.assign(function (k, v) {
        return typeof v === 'string' ? '' : (typeof v === 'undefined' ? '' :
            'Field ' + k + ' must be a string but got a ' + typeof v);
    }, { required: function (k, v) {
            return typeof v === 'string' ? '' : (typeof v === 'undefined' ?
                'Field ' + k + ' is required' :
                'Field ' + k + ' must be a string but got a ' + typeof v);
        } }),
    number: Object.assign(function (k, v) {
        return typeof v === 'number' ? '' : (typeof v === 'undefined' ? '' :
            'Field ' + k + ' must be a number but got a ' + typeof v);
    }, { required: function (k, v) {
            return typeof v === 'number' ? '' : (typeof v === 'undefined' ?
                'Field ' + k + ' is required' :
                'Field ' + k + ' must be a number but got a ' + typeof v);
        } }),
    boolean: Object.assign(function (k, v) {
        return typeof v === 'boolean' ? '' : (typeof v === 'undefined' ? '' :
            'Field ' + k + ' must be a boolean but got a ' + typeof v);
    }, { required: function (k, v) {
            return typeof v === 'boolean' ? '' : (typeof v === 'undefined' ?
                'Field ' + k + ' is required' :
                'Field ' + k + ' must be a boolean but got a ' + typeof v);
        } }),
    any: function () {
        return '';
    }
};
exports.ArtistSchema = {
    name: types.string.required
};
exports.AlbumSchema = {
    name: types.string.required,
    artist: types.string.required,
    year: types.number,
    dateAdded: types.number
};
exports.TrackSchema = {
    name: types.string.required,
    artist: types.string.required,
    album: types.string.required,
    number: types.number,
    disc: types.string,
    duration: types.number,
    track_artist: types.string,
    hidden: types.boolean
};
exports.TrackerSchema = {
    name: types.string.required,
    host: types.string,
    username: types.string,
    type: types.string.required,
    boost: types.number
};
exports.ReleaseSchema = {
    tracker: types.string.required,
    seeders: types.number.required,
    leechers: types.number.required,
    torrent_id: types.string.required,
    bitrate: types.number.required,
    name: types.string.required,
    wanted: types.string.required,
    format: types.string.required
};
exports.WantedAlbumSchema = {
    artist: types.string.required,
    album: types.string.required,
    strict: types.any,
    status: types.string.required
};
exports.ConfigSchema = {
    value: types.any
};
//# sourceMappingURL=Schemas.js.map