Skip to main content

Repository Interfaces

Repositories Definition

This file defines the repository interfaces structure within the Roll Claw domain model.

Implementation

Repository Interfaces Definition

File: domain/repositories/repository_interfaces.pseudo

// Repository Interfaces - Define data access patterns

interface CatRepository {
function findById(string id)
function findByName(string name)
function findByNickname(string nickname)
function findActive()
function findByStatus(CatStatus status)
function findByLocation(Location location)
function findByColony(Colony colony)
function findByCoatPattern(CoatPattern pattern)
function findByCoatColor(CoatColor color)
function findWithMedicalCondition()
function save(Cat cat)
function delete(Cat cat)
}

interface ColonyRepository {
function findById(string id)
function findByAddress(string address)
function findActive()
function findWithCats()
function findWithThreat(ThreatType threatType)
function save(Colony colony)
function delete(Colony colony)
}

interface EquipmentRepository {
function findById(string id)
function findByType(string type)
function findByLocation(Location location)
function findByStatus(EquipmentStatus status)
function findPendingInstallation()
function findNeedingService()
function save(Equipment equipment)
function delete(Equipment equipment)
}

interface TaskRepository {
function findById(string id)
function findByStatus(TaskStatus status)
function findOverdue()
function findByDueDate(Date date)
function findByAssignee(Person person)
function findByPriority(TaskPriority priority)
function findRecurring()
function save(Task task)
function delete(Task task)
}

interface InventoryRepository {
function findById(string id)
function findByCategory(string category)
function findLowStock()
function findByName(string name)
function save(InventoryItem item)
function delete(InventoryItem item)
}

interface ColonyEventRepository {
// Basic event operations
function findById(string id)
function findByType(string type)
function findByCat(Cat cat)
function findByLocation(Location location)
function findLatest(int count)
function save(ColonyEvent event)
function delete(ColonyEvent event)

// Enhanced temporal query capabilities
function findByDateRange(Date startDate, Date endDate, string eventType = null)
function findByDateAndCat(Date date, Cat cat, string eventType = null)
function findInYearMonth(int year, int month, string eventType = null)
function findInSpecificDate(int year, int month, int day)

// Correlation methods
function findRelatedEvents(ColonyEvent event, string relationshipType)
function getEventTimeline(Cat cat, Date startDate = null, Date endDate = null)
function findSequentialEvents(Cat cat, string firstEventType, string secondEventType)

// Specialized temporal queries
function getQuarantinePeriod(Cat cat, Date approximateStartDate)
function getMedicalHistory(Cat cat, Date startDate = null, Date endDate = null)
function getCatLocationHistory(Cat cat)
function getStatusChanges(Cat cat)

// Multi-entity temporal correlation
function findConcurrentEvents(Date date, string eventType = null)
function findEventsByCatGroup(List<Cat> catGroup, Date startDate = null, Date endDate = null)
function findEventsByDateKeyword(string keyword) // For searching "2018-07" etc.
}

interface MedicalProviderRepository {
function findById(string id)
function findByName(string name)
function findByType(string type)
function findBySpecialty(string specialty)
function findByProcedureType(MedicalProcedureType type)
function save(MedicalProvider provider)
function delete(MedicalProvider provider)
}
  • See the Domain Model Overview for more information on how this component fits into the overall domain model.