31 lines
851 B
D
31 lines
851 B
D
|
module profile.data;
|
||
|
|
||
|
import handy_httpd.components.optional;
|
||
|
import profile.model;
|
||
|
|
||
|
interface ProfileRepository {
|
||
|
Optional!Profile findByName(string name);
|
||
|
Profile createProfile(string name);
|
||
|
Profile[] findAll();
|
||
|
void deleteByName(string name);
|
||
|
ProfileDataSource getDataSource(in Profile profile);
|
||
|
}
|
||
|
|
||
|
interface PropertiesRepository {
|
||
|
Optional!string findProperty(string propertyName);
|
||
|
void setProperty(string name, string value);
|
||
|
void deleteProperty(string name);
|
||
|
ProfileProperty[] findAll();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* A data source for all data contained within a profile. This serves as the
|
||
|
* gateway for all data access operations for a profile.
|
||
|
*/
|
||
|
interface ProfileDataSource {
|
||
|
import account.data : AccountRepository;
|
||
|
|
||
|
PropertiesRepository getPropertiesRepository();
|
||
|
AccountRepository getAccountRepository();
|
||
|
}
|