Антикафе фриланса

  • Рус
  • Қаз
  • Eng

Объектная модель

Не претендует на завершенность и окончательную правильность, она просто позволяет держать в уме большую часть работы.

//Система "Анклав"

/*

Система предназначена для переформатирования общественных отношений. Первичные функции: сознание виртуального жизненного пространства, создание внутренней культурной среды, обучающей системы и экономического базиса, обеспечение собственного роста и воспроизводства во внешней агрессивной среде.

*/

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

/*

Порядок развёртывания

*/