Skip to content

Instantly share code, notes, and snippets.

@mwmaleks
Last active December 27, 2015 03:49
Show Gist options
  • Save mwmaleks/7262529 to your computer and use it in GitHub Desktop.
Save mwmaleks/7262529 to your computer and use it in GitHub Desktop.
Структура данных Wing Pass
Структура данных Wing Pass
Certificate{
_id: // - Внутренний 24-х значный идентификатор
// документа в базе данных MongoDB.
// есть возможность отключить автоматическую
// генерацию этого id и сделать его номером
// карты-сертификата дорастив к нему слева 8 нолей
// тогда валидация уникальности сгенерированого номера
// карты-сертификата будет происходить по запросу
// внутреннего _id уже существующих в базе данных сертификатов
instructor_id: // к каждому сертификату будет соответствовать инструктор
// из списка инструкторов. instructor_id = _id (внутренний номер
// документа - коллекции Instructors)
passanger_id: // passanger_id = _id из коллекции Passangers, задается в момент
// активации карты пассажиром
valid_period: // период действительности сертификата. По этому полю можно
// организовать проверку действительности с уведомлением о
// скором истечении срока как пассажира, так и инструктора
// по средствам смс, e-mail и т.д.
Type_virtual: true or false
status: noactivated // значит, что данная карта ушла в печать и
// будет находится у инструктора до ее продажи пассажиру
// с последующей активацией
acctivated // карта продана и активирована пассажиром," назначен период
// действительности карты. Необходимо уведомление инструктора
closed // врятли стоит рассчитывать на радивость инструкторов, которые
// будут тратить время на то, что бы заходить на сервис и педантично
// закрывать все отработанные сертификаты. С другой стороны, так им самим
// по идее должно быть удобно работать, что бы видеть в таблице статусы
// и планировать расписание. Дот тех пор, пока карта acctivated - должны происходить
// уведомления о valid_period как инструктора, так и пассажира. "О, я же хотел полетать!""
// В случае если valid_period истек, он может быть продлен по желанию инструктора.
design_id: // в случае если карта не virtual это поле содержит в себе данные об использованном макете (варианты 1, 2, 3, 4 и costom)
// и возможно ссылку на cdr макета.
}
Instructor:{
_id: // внутренний номер документа - используем в Certificate для привязки конкретного инструктора сертификату
name:
last_name:
tel:
email:
skype:
avatar: // ссылка на аватарку или фотку
info: // некая дополнительная информация об инструкторе, оставляется по желания инструктора
occupation: // территориальное расположение инструктора - может быть указан адрес местоположения
}
Passanger:{
_id: //
name:
last_name:
tel:
e-mail:
occupation: // местонахождение пассажира, адрес
}
Fly_Plases:{
_id:
name:
occupation: // адрес
instructors:[]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment