using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using EQNetwork.Objects;
using EQNetwork.Utility;

namespace EQNetwork.Interfaces
{
    public partial interface IContentFileService
    {
        ContentFile Get(int contentFileId);
        ContentFile Get(string filename);

        void Create(ref ContentFile contentFile);
        void CreateFromUrl(ref ContentFile contentFile, string url);

        void Update(ref ContentFile contentFile);
        void UpdateSortBy(int contentFileId, float? sortBy);

        void Delete(ContentFile contentFile);
        void Delete(int contentFileId);

        void ChangeCollection(int contentFileId, int old_CollectionId, int new_CollectionId);
        void FlagAsInappropriate(int contentFileId);

        List<Post> ListPosts(string filename, PagingParameters pagingParameters);

        void SocialAdd(int contentFileId, string action, Db.SocialService? exclude, bool? force);
        void SocialRemove(int contentFileId, string action, bool? force);

        void MarkAsViewed(int contentFileId);
    }
}
