using System; using System.Collections.Generic; namespace FSO.Server.Database.DA.LotVisitors { public interface ILotVisits { /// <summary> /// Records a new visit to a lot. A visit id is returned which can be used to record /// when the visit ends /// </summary> /// <param name="avatar_id"></param> /// <param name="visitor_type"></param> /// <param name="lot_id"></param> /// <returns></returns> int? Visit(uint avatar_id, DbLotVisitorType visitor_type, int lot_id); /// <summary> /// Records that a visit has ended /// </summary> /// <param name="visit_id"></param> void Leave(int visit_id); /// <summary> /// Updates the timestamp on active visits. This helps detect the difference between /// a long visit and an error where the visit did not get closed. /// /// This also lets us calculate Top 100 without downtime as we can be inclusive /// of active tickets /// </summary> /// <param name="visit_ids"></param> void Renew(IEnumerable<int> visit_ids); /// <summary> /// Purge data older than the date given /// </summary> /// <param name="days"></param> void PurgeByDate(DateTime date); /// <summary> /// /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> IEnumerable<DbLotVisit> StreamBetween(int shard_id, DateTime start, DateTime end); /// <summary> /// /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> IEnumerable<DbLotVisitNhood> StreamBetweenPlusNhood(int shard_id, DateTime start, DateTime end); /// <summary> /// /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> IEnumerable<DbLotVisitNhood> StreamBetweenOneNhood(uint nhood_id, DateTime start, DateTime end); } }