Объектная модель
Не претендует на завершенность и окончательную правильность, она просто позволяет держать в уме большую часть работы.
//Система "Анклав"
/*
Система предназначена для переформатирования общественных отношений. Первичные функции: сознание виртуального жизненного пространства, создание внутренней культурной среды, обучающей системы и экономического базиса, обеспечение собственного роста и воспроизводства во внешней агрессивной среде.
*/
Enclave={
//паспорт
/*
Статическая информация, которая содержит такие сведения, как имя, путь инсталляции и др. Может содержать инструкции по развёртыванию, совместимости и указание на штат специалистов.
*/
meta: {
name: '',
version: '',
path: ''
},
//страницы
/*
Страницы, которые были на исходном ресурсе и которые были созданы пользователями Анклава. У каждой страницы есть автор.
*/
resources: [],
//пользователи
/*
Изначально пользователи появляются на странице в цепочках комментариев. Это так называемые треды (по аналогии с имиджбордами). Страницы содержат пользователей (треды), и взаимообратно, пользователи содержат свои страницы.
*/
sharers: [],
//диапазоны инвайт-кодов
/*
Этот объект определяет категории инвайтов. Для категорий определены свои правила поведения на ресурсе. Так можно работать с тремя основными категориями инвайтов: анонимные, комментаторские и резидентские.
*/
invites: {
noname: [], //только для входа в Анклав и просмотра страниц.
reviewer: [], //разрешается комментирование и построение тредов.
resident: [] //разрешается участие во внутренней жизни Анклава.
},
//постоянные пользователи
/*
Пользователи, которые обзавелись профилями в Анклаве. Соответственно, могут использовать внутреннюю коммуникацию, оформлять своё личное пространство.
*/
abodes: [],
//коммуникация
/*
Любые действия пользователя на ресурсе являются коммуникацией. Тменно поэтому они должны фиксироваться, как процессы. Эти коммуникационные процессы должны иметь социокультурные маркеры.
*/
activites: [],
//кошельки 3-го уровня
/*
Третий контур экономических взаимоотношений. Контракты. Договорённости на длительный срок. Кошельки третьего уровня могут быть только у резидентов.
*/
swaps: [],
//настройка средств обмена (демерредж, свойства платёжного средства)
/*
Мера стоимости, Средство обращения, Средство накопления, Средство платежа, Мировые (трансграничные) деньги.
Масштаб применения, Процентная ставка, Обеспечение, Основание для выпуска, Центр эмиссии.
*/
metabolism: {
gesell: { //деньги Гейзеля
},
sharein: { //товарные билеты, векселя
},
swap: { //соглашения суверенов
},
socialism: { //инструмент социализации, настройка альтернативных средств обмена
priority_1: '', //социальные процессы
priority_2: '', //алгоритмические матрицы
priority_3: '', //идеи
priority_4: '', //деньги
priority_5: '', //яды (лекарства)
priority_6: '' //оружие (средства защиты)
}
},
//межотраслевой балланс, дотации и налоги, план счетов
/*
Продуктообмен и стоимостный балланс. Матричный расчёт товарооборота.
*/
balance: {
},
/* КОНСТРУКТОРЫ */
//ресурс и его страницы, треды
/*
Это компактное представление ресурса. Он может быть свёрнут до компактного вида с целью переноса на другой хостинг.
*/
Resource: function(id,meta,content) {
this.id=id;
this.meta=JSON.parse(meta);
this.content=JSON.parse(content);
/*content.hostunits=[], content.threads=[]*/
},
//семантическая единица, к которой можно закрепить комментарий
/*
Это может быть отдельный абзац, изображение, отдельная секция или статья целиком. Поэтому указывается тип этой семантической единицы.
*/
Hostunit: function(id,type,content) {
this.id=id;
this.type=type;
this.content=content;
},
//комментарий
/*
Комментарий располагается в дереве комментариев. Соответственно указвается предок и дочерние комментарии.
*/
Threadunit: function(id,sibling,ancestor,content) {
this.id=id;
this.sibling=sibling;
this.ancestor=ancestor;
this.content=content;
},
//пользователи (все)
/*
Любой посетитель, зашедщий на страницу ресурса, получивший инвайт какого-либо типа.
*/
Sharer: function(id,role,invites,threads) {
this.id=id;
this.role=role;
this.invites=invites;
this.threads=threads;
},
//пригласительные
/*
Это номер из какого-либо диапазона номеров. Возможно создание специальных инвайтов.
*/
Invite: function(value,type,used) {
this.value=value;
this.type=type;
this.used=used;
},
//персональное пространство
/*
Личное пространство резидента Анклава. Отражены: резидент, хозяйственая деятельность и ресурсы, если резидент является автором каких-либо ресурсов в Анклаве. Интересно, что это дом имеет хозяина, а не хозяин имеет дом.
*/
Abode: function(id,lord,hearths,resource) {
this.id=id;
this.lord=JSON.parse(lord);
/*meta={},mentor,mate,flowone={},flowtwo={},flowthree={},gesell={},rating={}*/
this.hearths=hearths;
this.resource=resource;
},
//владелец, управляющий
/*
Персона. Резидент, протестированный по трём потокам взаимоотношений. То есть его потребности определены, за ним закреплён кошелёк Гейзеля.
*/
Lord: function(meta,mentor,mate,flowone,flowtwo,flowthree,gesell,rating) {
this.meta=JSON.parse(meta);
this.mentor=mentor;
this.mate=mate;
this.flowone=JSON.parse(flowone);
this.flowtwo=JSON.parse(flowtwo);
this.flowthree=JSON.parse(flowthree);
this.gesell=JSON.parse(gesell);
this.rating=JSON.parse(rating);
},
//
/*
Единица хозяйствования. В общем случае это результат приложения усилий, идея, обличённая в цифры и факты. Это может быть, к примеру, портфолио на 1 потоке, фирма на 2 потоке или мероприятие на 3 потоке. К единице хозяйствования привязан кошелёк второго уровня, то есть векселя (товарные билеты). Этот кошелёк не существует отдельно от единицы хозяйствования.
*/
Hearth: function(id,meta,content,flow,sharein) {
this.id=id;
this.meta=JSON.parse(meta);
this.content=JSON.parse(content);
this.flow=flow;
this.sharein=JSON.parse(sharein);
},
//процессы, отражающие деятельность посетителей на ресурсе
/*
Это не CRM. Если забыть на время о пользователях, то активности будут существовать сами по себе. Именно активности (каждая из активностей) имеет рейтинг. На основании анализа активностей следует строить стратегическое планирование Анклава. Активность дает повод записать новую строку в статистику. Активность - представление материального объекта, как события (финслерова геометрия).
*/
Activity: function(id,origin,socio,priority,integrals,individuals) {
this.id=id;
this.origin=origin;
this.socio=socio;
this.priority=priority;
this.integrals=integrals;
this.individuals=individuals;
},
//общественная составляющая активности
/*
То, что делает пользователь для Анклава и в интересах Анклава.
*/
Integral: function(date,force,expire,relation) {
this.date=date; //метка времени
this.force=force; //балл
this.expire=expire; //время прекращения действия
this.relation=relation; //функция изменения от времени
},
//личная составляющая активности
/*
То, что делает пользователь для себя самого, преследуя собственные интересы.
*/
Individual: function(date,force,expire,relation) {
this.date=date; //метка времени
this.force=force; //балл
this.expire=expire; //время прекращения действия
this.relation=relation; //функция изменения от времени
},
//кошелёк верхнего (3) уровня
/*
Классический пример трудового договора, "скрещенный" с эмиссией векселя.
*/
Swap: function(id,firstparty,secondparty,fixedrate,floatingrate,period,agreement,urlchannels) {
this.id=id;
this.firstparty=firstparty;
this.secondparty=secondparty;
this.fixedrate=fixedrate; //фиксированная ставка
this.floatingrate=floatingrate; //плавающая ставка
this.period=period; //время выполнения обязательств
this.agreement=agreement; //суть соглашения
this.urlchannels=urlchannels; //публичный адрес, где можно посмотреть все подробности
}
};
/* ПРОТОТИПЫ */
//прототип – это «резервное хранилище свойств и методов» объекта по умолчанию, автоматически используемое при поиске
//ресурс
Enclave.Resource.prototype={
id: '',
meta: {
},
content: {
hostunits: [],
threads: []
}
};
//семантическая единица для прикрепления тредов
Enclave.Resource.Hostunit.prototype={
id: '',
type: '',
content: ''
};
//комментарий
Enclave.Threadunit.prototype={
id: '',
sibling: [],
ancestor: '',
content: ''
};
//пользователь
Enclave.Sharer.prototype={
id: '',
role: '',//noname, reviewer, resident
invites: [],
threads: []
};
//инвайт-код
Enclave.Invite.prototype={
value: '',
type: '',
used: false
};
//личное пространство resident
Enclave.Abode.prototype={
id: '',
lord: { //зарегистрированный пользователь
meta: {
},
mentor: '', //наставник
mate: '', //напарник
flowone: {
},
flowtwo: {
},
flowthree: {
},
gesell: { //кошелёк 1-го контура
term: '', //дата последнего платежа
valid: '', //дата применения ставки демереджа
due: '', //сумма последнего начисления
amount: '' //итого на счете
},
rating: {
integral: '',
individual: ''
}
},
hearths: [], //"визитки", в которых определены потоки отношений и кошельки 2-го контура
resource: [] //страницы анклава
};
//единица хозяйства (визитка)
Enclave.Hearth.prototype={
id: '',
meta: {
},
content: {
},
flow: '',
sharein: { //кошелёк 2-го уровня
date: '',
face: '',
paytime: '',
payers: []
}
};
//инициированное изменение (коммуникация)
Enclave.Activity.prototype={
id: '',
origin: '',
socio: '', //процессы по социокультурному кубу Переслегина
priority: '', //1-6 приоритет обобщённых средств управления Концепции Общественной Безопасности
integrals: [],
individuals: []
};
//квант социального рейтинга
Enclave.Integral.prototype={
date: '',
force: '',
expire: '',
relation: ''
};
//квант личного рейтинга
Enclave.Individual.prototype={
date: '',
force: '',
expire: '',
relation: ''
};
//кошелёк 3-го уровня
Enclave.Swap.prototype={
id: '',
firstparty: '',
secondparty: '',
fixedrate: '',
floatingrate: '',
period: '',
agreement: '',
urlchannels: ''
};
/////
//enclave
/*
Порядок развёртывания
*/