First i would like to thank you for you effert and making this open sourse. I liked it very much. I'm planning to make something different but similar and i found this amazing repo.
Table Account {
id Int [pk, increment]
userId Int [not null]
type String [not null]
provider String [not null]
providerAccountId String [not null]
refresh_token String
access_token String
expires_at Int
token_type String
scope String
id_token String
session_state String
user User [not null]
indexes {
(provider, providerAccountId) [unique]
}
}
Table Session {
id Int [pk, increment]
sessionToken String [unique, not null]
userId Int [not null]
expires DateTime [not null]
user User [not null]
}
Table User {
id Int [pk, increment]
name String
nameAr String
emailVerified DateTime
role Role [not null]
nationality Country
email String [unique, not null]
image String
mobileNumber String
gender Gender
twitter String
linkedIn String
balance Decimal [not null, default: 0]
inviter User
specialty Specialty
profession Profession
scfhs String
city City
state State
country Country
accounts Account [not null]
sessions Session [not null]
traineeEvents TraineeEvent [not null]
invitedUsers User [not null]
memberNeeds MemberNeeds [not null]
bankAccount BankAccount
trainerCv Cv
nameOnCommercialRecord String
addedEvents Event [not null]
commercialRecord String
logoUrl String
cvId Int
inviterId Int
specialtyId Int
rankId Int
roleId Int [not null, default: 3]
professionId Int
cityId Int
stateId Int
countryId Int
nationalityId Int
transitionsFirstParty Transition [not null]
transitionsSecondParty Transition [not null]
events Event [not null]
remindMeEvents Event [not null]
traineeEventInvites TraineeEvent [not null]
trainerEvents TrainerEvent [not null]
trainereventDayTimeSlots TrainerEventDayTimeSlot [not null]
coupons Coupon [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
leaderEventGroups TraineeEventGroup [not null]
}
Table VerificationToken {
identifier String [not null]
token String [unique, not null]
expires DateTime [not null]
indexes {
(identifier, token) [unique]
}
}
Table Qualification {
id Int [pk, increment]
title String [unique, not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
Education Education [not null]
}
Table Specialty {
id Int [pk, increment]
titleEn String [not null]
titleAr String
profession Profession [not null]
coupons Coupon [not null]
users User [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
professionId Int [not null]
Education Education [not null]
}
Table Rank {
id Int [pk, increment]
title String [unique, not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
Cv Cv [not null]
}
Table Role {
id Int [pk, increment]
titleAr String [unique, not null]
titleEn String [unique, not null]
users User [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table Country {
id Int [pk, increment]
name String [unique, not null]
states State [not null]
cities City [not null]
users User [not null]
usersNationality User [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table State {
id Int [pk, increment]
name String [not null]
country Country
countryId Int
cities City [not null]
users User [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table City {
id Int [pk, increment]
name String [not null]
latitude Decimal
longitude Decimal
states State
country Country
stateId Int
countryId Int
events Event [not null]
users User [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table Profession {
id Int [pk, increment]
sortOrder Int
titleEn String [unique, not null]
titleAr String
users User [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
Specialties Specialty [not null]
trainerEvents TrainerEvent [not null]
Events Event [not null]
pricingPlans PricingPlanSpecialtyPrice [not null]
Education Education [not null]
}
Table MemberNeeds {
id Int [pk, increment]
courseTitle String [not null]
information String
objectives String
user User
userId Int
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table BankAccount {
id Int [pk, increment]
iban String [not null]
accountHolderName String
bankName String
user User [not null]
userId Int [unique, not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table Transition {
id Int [pk, increment]
firstPartyOpeningBalance Decimal [not null]
secondPartyOpeningBalance Decimal
firstPartyClosingBalance Decimal [not null]
secondPartyClosingBalance Decimal
amount Decimal [not null]
tax Decimal [not null]
bankTransferReceipt String
description String [not null]
isRefund Boolean [not null]
isRefunded Boolean [not null]
transitionType TransitionType [not null]
paymentWay PaymentWay [not null]
firstParty User [not null]
secondParty User
status TransitionStatusType [not null]
fullAmount Decimal [not null]
transitionTypeId Int [not null]
firstPartyUserId Int [not null]
secondPartyUserId Int
transitionStatusTypeId Int [not null]
traineeEvents TraineeEvent [not null]
traineeEventGroups TraineeEventGroup [not null]
trainerEvents TrainerEvent [not null]
createdAt DateTime [default: `now()`]
paymentWayId Int [not null]
}
Table TransitionType {
id Int [pk, increment]
titleEn String [unique, not null]
titleAr String [unique, not null]
transitions Transition [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table PaymentWay {
id Int [pk, increment]
title String [unique, not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
Transition Transition [not null]
}
Table Event {
id Int [pk, increment]
startDate DateTime [not null]
endDate DateTime [not null]
eventType EventType [not null]
isTrainerCertificateAvailable Boolean [not null]
trainerCertificateTemplate Template
isTraineeCertificateAvailable Boolean [not null]
traineeCertificateTemplate Template
minAttendancePercentageToGetCertificate Decimal
isAccredited Boolean [not null]
leaderTrainer User
addedBy User
addedById Int
remindMeTrainees User [not null]
onsiteCapacity Int
address String
backgroundImagesUrls String[] [not null]
isContentProvidedByAcademy Boolean [not null]
titleAr String [not null]
titleEn String [not null]
city City
addressInstructions String
locationLongitude Decimal
locationLatitude Decimal
onlineCapacity Int
imageUrl String
cmeHours Decimal
introductionAr String
introductionEn String
objectivesAr String
objectivesEn String
mainThemeAr String
mainThemeEn String
outcomesAr String
outcomesEn String
whyTargetedAudienceAr String
whyTargetedAudienceEn String
folder EventFolder [not null]
visibleOnArchive Boolean [default: true]
pricingPlan PricingPlan [not null]
zoomJoinUrl String
methodOfDelivery MethodOfDelivery [not null]
eventTypeId Int [not null]
trainerCertificateTemplateId Int
traineeCertificateTemplateId Int
leaderTrainerId Int
cityId Int
folderId Int [not null]
pricingPlanId Int [unique, not null]
methodOfDeliveryId Int [not null]
targetedAudiences Profession [not null]
eventParts EventPart [not null]
eventDays EventDay [not null]
expenses Expense [not null]
traineeEvents TraineeEvent [not null]
traineeEventGroups TraineeEventGroup [not null]
trainerEvents TrainerEvent [not null]
trainerEventStudyMaterials TrainerEventStudyMaterial [not null]
coupons Coupon [not null]
traineeEventReviews TraineeEventReview [not null]
eventLanguages Language [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table MethodOfDelivery {
id Int [pk, increment]
titleAr String [unique, not null]
titleEn String [unique, not null]
events Event [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table EventType {
id Int [pk, increment]
titleEn String [unique, not null]
titleAr String [unique, not null]
events Event [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table Template {
id Int [pk, increment]
title String [not null]
data Json [not null]
purpose TemplatePurpose [not null]
trainerCertificateEvents Event [not null]
traineeCertificateEvents Event [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table Language {
id Int [pk, increment]
title String [unique, not null]
events Event [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table EventFolder {
id Int [pk, increment]
titleEn String [unique, not null]
titleAr String [unique, not null]
events Event [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table PricingPlan {
id Int [pk, increment]
hasLateRegistration Boolean
lateRegistrationStartDate DateTime
hasGroupDiscount Boolean
groupDiscountPrice Decimal
hasGroupDiscountEndDate Boolean
groupDiscountEndDate DateTime
groupDiscountMinNumberOfRegistrants Int
hasWorkshop Boolean
workshopPrice Decimal
workshopLateRegistrationPrice Decimal
workshopGroupDiscountPrice Decimal
pricingPlanType PricingPlanType
pricingPlanTypeId Int
freePlanCertificateCmeIsPaid Boolean
freePlanCertificateCmePrice Decimal
paidPlanPrice Decimal
paidPlanLateRegistrationPrice Decimal
pricingPlanSpecialtyPrices PricingPlanSpecialtyPrice [not null]
basedOnSpecialtyPlanOtherSpecialtiesPrice Decimal
basedOnSpecialtyPlanOtherSpecialtiesLateRegistrationPrice Decimal
Event Event
eventPart EventPart
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table PricingPlanType {
id Int [pk, increment]
titleAr String [unique, not null]
titleEn String [unique, not null]
pricingPlans PricingPlan [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table EventPart {
id Int [pk, increment]
event Event [not null]
outlineAr String [not null]
outlineEn String [not null]
pricingPlan PricingPlan [not null]
eventId Int [not null]
pricingPlanId Int [unique, not null]
eventDays EventDay [not null]
trainees TraineeEventPart [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table EventDay {
id Int [pk, increment]
eventPart EventPart
event Event [not null]
date DateTime [not null]
startTime DateTime [not null]
endTime DateTime [not null]
cmeHours Decimal
outlineAr String [not null]
outlineEn String [not null]
hasWorkshop Boolean
eventPartId Int
eventId Int [not null]
traineeAttendance TraineeEventDayAttendance [not null]
trainerLessons TrainerEventDayLesson [not null]
trainerTimeSlots TrainerEventDayTimeSlot [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table PricingPlanSpecialtyPrice {
id Int [pk, increment]
professions Profession [not null]
price Decimal [not null]
LateRegistrationPrice Decimal
pricingPlan PricingPlan [not null]
pricingPlanId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table Expense {
id Int [pk, increment]
event Event
description String
amount Decimal [not null]
receiptUrl String
datetime DateTime [not null]
type ExpenseType [not null]
tax Decimal [not null]
fullAmount Decimal [not null]
eventId Int
expenseTypeId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table ExpenseType {
id Int [pk, increment]
titleAr String [unique, not null]
titleEn String [unique, not null]
expenses Expense [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TraineeEvent {
id Int [pk, increment]
trainee User [not null]
event Event [not null]
price Decimal [not null]
tax Int [not null]
totalToPay Decimal [not null]
isLateRegistrant Boolean [not null]
isWorkshopRegistrant Boolean [not null]
isGroupRegistrant Boolean [not null]
workshopPrice Decimal
isIndividualPay Boolean
transition Transition
bookingStatus BookingStatus
certificatePrice Decimal
hasBookedAllParts Boolean
inviter User
group TraineeEventGroup
howHeardAboutEvent HowHeardAboutEvent
review TraineeEventReview
traineeId Int [not null]
inviterId Int
eventId Int [not null]
transitionId Int
bookingStatusId Int [default: 1]
groupId Int
howHeardAboutEventId Int
createdAt DateTime [default: `now()`]
deletedAt DateTime
parts TraineeEventPart [not null]
attendance TraineeEventDayAttendance [not null]
traineeTrainerReviews TraineeTrainerReview [not null]
indexes {
(traineeId, eventId) [unique]
}
}
Table HowHeardAboutEvent {
id Int [pk, increment]
titleEn String [unique, not null]
titleAr String [unique, not null]
traineeEvents TraineeEvent [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table BookingStatus {
id Int [pk, increment]
titleEn String [unique, not null]
titleAr String [unique, not null]
traineeEvents TraineeEvent [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TraineeEventGroup {
id Int [pk, increment]
event Event [not null]
areLateRegistrants Boolean [not null]
groupTotalToPay Decimal [not null]
groupPrice Decimal [not null]
groupTax Decimal [not null]
areWorkshopRegistrants Boolean [not null]
groupWorkshopPrice Decimal
groupCertificatePrice Decimal
isGroupPay Boolean [not null]
groupTransaction Transition
traineeEvents TraineeEvent [not null]
leader User [not null]
eventId Int [not null]
leaderId Int [not null]
transitionId Int
createdAt DateTime [default: `now()`]
deletedAt DateTime
indexes {
(eventId, leaderId) [unique]
}
}
Table TraineeEventPart {
id Int [pk, increment]
traineeEvent TraineeEvent [not null]
eventPart EventPart [not null]
partTotalPrice Decimal [not null]
traineeEventId Int [not null]
eventPartId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TraineeEventDayAttendance {
id Int [pk, increment]
traineeEvent TraineeEvent [not null]
eventDay EventDay [not null]
joinTime DateTime [not null]
leaveTime DateTime
traineeEventId Int [not null]
eventDayId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TrainerEvent {
id Int [pk, increment]
trainer User [not null]
event Event [not null]
youtubeUrl String
introductionEn String
introductionAr String
objectivesEn String
objectivesAr String
mainThemeEn String
mainThemeAr String
outcomesEn String
outcomesAr String
whyTargetedAudienceAr String
whyTargetedAudienceEn String
contentIsAdded Boolean
transition Transition
toTransferAmount Decimal
toTransferType ToTransferType
targetedAudiences Profession [not null]
trainerId Int [not null]
eventId Int [not null]
transitionId Int
dayLessons TrainerEventDayLesson [not null]
timeSlots TrainerEventDayTimeSlot [not null]
traineeTrainerReviews TraineeTrainerReview [not null]
StudyMaterials TrainerEventStudyMaterial [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
indexes {
(trainerId, eventId) [unique]
}
}
Table TrainerEventStudyMaterial {
id Int [pk, increment]
trainerEvent TrainerEvent
event Event [not null]
url String [not null]
title String [not null]
trainerEventId Int
eventId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TrainerEventDayLesson {
id Int [pk, increment]
trainerEvent TrainerEvent
eventDay EventDay [not null]
startTime DateTime [not null]
endTime DateTime [not null]
outlineAr String [not null]
outlineEn String [not null]
methodOfTeaching MethodOfTeachingType
trainerEventId Int
eventDayId Int [not null]
methodOfTeachingTypeId Int
TrainerEventDayLessonType TrainerEventDayLessonType [not null]
trainerEventDayLessonTypeId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table MethodOfTeachingType {
id Int [pk, increment]
titleAr String [unique, not null]
titleEn String [unique, not null]
lessons TrainerEventDayLesson [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TrainerEventDayLessonType {
id Int [pk, increment]
titleAr String [unique, not null]
titleEn String [unique, not null]
lessons TrainerEventDayLesson [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TrainerEventDayTimeSlot {
id Int [pk, increment]
addedBy User
trainerEvent TrainerEvent [not null]
eventDay EventDay [not null]
startTime DateTime [not null]
endTime DateTime [not null]
addedById Int
trainerEventId Int [not null]
eventDayId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TraineeTrainerReview {
id Int [pk, increment]
traineeEvent TraineeEvent [not null]
trainerEvent TrainerEvent [not null]
reviewOfFive Int [not null]
why String
choices TraineeTrainerReviewChoice [not null]
traineeEventId Int [not null]
trainerEventId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
indexes {
(traineeEventId, trainerEventId) [unique]
}
}
Table TraineeTrainerReviewChoice {
id Int [pk, increment]
titleEn String [not null]
titleAr String [not null]
isGood Boolean [not null]
reviews TraineeTrainerReview [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table Coupon {
id Int [pk, increment]
couponType CouponType [not null]
fixedAmountDiscount Decimal
percentageDiscount Decimal
percentageMaxAmount Decimal
expiryDate DateTime [not null]
inviter User
event Event
isForAllSpecialties Boolean [not null]
isForAllEvents Boolean [not null]
specialties Specialty [not null]
inviterId Int
eventId Int
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TransitionStatusType {
id Int [pk, increment]
titleEn String [unique, not null]
titleAr String [unique, not null]
transitions Transition [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TraineeEventReview {
id Int [pk, increment]
event Event [not null]
TraineeEvent TraineeEvent [not null]
reviewOfFive Int [not null]
why String
traineeEventReviewChoices TraineeEventReviewChoice [not null]
traineeEventId Int [unique, not null]
eventId Int [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
}
Table TraineeEventReviewChoice {
id Int [pk, increment]
titleEn String [not null]
titleAr String [not null]
isGood Boolean [not null]
createdAt DateTime [default: `now()`]
deletedAt DateTime
reviews TraineeEventReview [not null]
}
Table Cv {
id Int [pk, increment]
trainerRank Rank
education Education [not null]
professionalSkills ProfessionalSkills [not null]
trainingExperience TrainingExperience [not null]
scientificResearches ScientificResearch [not null]
User User [not null]
rankId Int
}
Table TrainingExperience {
id Int [pk, increment]
eventName String
executingAgency String
Cv Cv
cvId Int
}
Table Education {
id Int [pk, increment]
university String
profession Profession
specialty Specialty
qualification Qualification
graduationYear DateTime
Cv Cv
cvId Int
professionId Int
specialtyId Int
qualificationId Int
}
Table ProfessionalSkills {
id Int [pk, increment]
yearsOfExperience Int
academicRank AcademicRank
placeOfWork String
natureOfWork String
type ProfessionalSkillsType
Cv Cv
cvId Int
academicRankId Int
}
Table AcademicRank {
id Int [pk, increment]
titleEn String [not null]
titleAr String [not null]
ProfessionalSkills ProfessionalSkills [not null]
}
Table ScientificResearch {
id Int [pk, increment]
description String
type ScientificResearchType
role ScientificResearchRole
Cv Cv
cvId Int
}
Table remindMeEvents {
remindmeeventsId Int [ref: > Event.id]
remindmetraineesId Int [ref: > User.id]
}
Table CouponToSpecialty {
couponsId Int [ref: > Coupon.id]
specialtiesId Int [ref: > Specialty.id]
}
Table ProfessionToTrainerEvent {
trainereventsId Int [ref: > TrainerEvent.id]
targetedaudiencesId Int [ref: > Profession.id]
}
Table EventToProfession {
eventsId Int [ref: > Event.id]
targetedaudiencesId Int [ref: > Profession.id]
}
Table PricingPlanSpecialtyPriceToProfession {
pricingplansId Int [ref: > PricingPlanSpecialtyPrice.id]
professionsId Int [ref: > Profession.id]
}
Table EventToLanguage {
eventlanguagesId Int [ref: > Language.id]
eventsId Int [ref: > Event.id]
}
Table TraineeTrainerReviewToTraineeTrainerReviewChoice {
choicesId Int [ref: > TraineeTrainerReviewChoice.id]
reviewsId Int [ref: > TraineeTrainerReview.id]
}
Table TraineeEventReviewToTraineeEventReviewChoice {
traineeeventreviewchoicesId Int [ref: > TraineeEventReviewChoice.id]
reviewsId Int [ref: > TraineeEventReview.id]
}
Enum ScientificResearchType {
conferences
journals
}
Enum ScientificResearchRole {
lead
assistant
}
Enum ProfessionalSkillsType {
academic
practicalExperiance
}
Enum Gender {
male
female
}
Enum TemplatePurpose {
certificate
email
notification
page
others
}
Enum ToTransferType {
percentage
fixed
}
Enum CouponType {
fixed
percentage
}
Ref: Account.userId > User.id
Ref: Session.userId > User.id
Ref: User.roleId > Role.id
Ref: User.nationalityId > Country.id
Ref: User.inviterId - User.id
Ref: User.specialtyId > Specialty.id
Ref: User.professionId > Profession.id
Ref: User.cityId > City.id
Ref: User.stateId > State.id
Ref: User.countryId > Country.id
Ref: User.cvId > Cv.id
Ref: Specialty.professionId > Profession.id [delete: Cascade]
Ref: State.countryId > Country.id
Ref: City.stateId > State.id
Ref: City.countryId > Country.id
Ref: MemberNeeds.userId > User.id
Ref: BankAccount.userId - User.id
Ref: Transition.transitionTypeId > TransitionType.id
Ref: Transition.paymentWayId > PaymentWay.id
Ref: Transition.firstPartyUserId > User.id
Ref: Transition.secondPartyUserId > User.id
Ref: Transition.transitionStatusTypeId > TransitionStatusType.id
Ref: Event.eventTypeId > EventType.id
Ref: Event.trainerCertificateTemplateId > Template.id
Ref: Event.traineeCertificateTemplateId > Template.id
Ref: Event.leaderTrainerId > User.id
Ref: Event.addedById > User.id
Ref: Event.cityId > City.id
Ref: Event.folderId > EventFolder.id
Ref: Event.pricingPlanId - PricingPlan.id
Ref: Event.methodOfDeliveryId > MethodOfDelivery.id
Ref: PricingPlan.pricingPlanTypeId > PricingPlanType.id
Ref: EventPart.eventId > Event.id
Ref: EventPart.pricingPlanId - PricingPlan.id
Ref: EventDay.eventPartId > EventPart.id
Ref: EventDay.eventId > Event.id
Ref: PricingPlanSpecialtyPrice.pricingPlanId > PricingPlan.id
Ref: Expense.eventId > Event.id
Ref: Expense.expenseTypeId > ExpenseType.id
Ref: TraineeEvent.traineeId > User.id
Ref: TraineeEvent.eventId > Event.id
Ref: TraineeEvent.transitionId > Transition.id
Ref: TraineeEvent.bookingStatusId > BookingStatus.id
Ref: TraineeEvent.inviterId > User.id
Ref: TraineeEvent.groupId > TraineeEventGroup.id
Ref: TraineeEvent.howHeardAboutEventId > HowHeardAboutEvent.id
Ref: TraineeEventGroup.eventId > Event.id
Ref: TraineeEventGroup.transitionId > Transition.id
Ref: TraineeEventGroup.leaderId > User.id
Ref: TraineeEventPart.traineeEventId > TraineeEvent.id
Ref: TraineeEventPart.eventPartId > EventPart.id
Ref: TraineeEventDayAttendance.traineeEventId > TraineeEvent.id
Ref: TraineeEventDayAttendance.eventDayId > EventDay.id
Ref: TrainerEvent.trainerId > User.id
Ref: TrainerEvent.eventId > Event.id
Ref: TrainerEvent.transitionId > Transition.id
Ref: TrainerEventStudyMaterial.trainerEventId > TrainerEvent.id
Ref: TrainerEventStudyMaterial.eventId > Event.id
Ref: TrainerEventDayLesson.trainerEventId > TrainerEvent.id
Ref: TrainerEventDayLesson.eventDayId > EventDay.id
Ref: TrainerEventDayLesson.methodOfTeachingTypeId > MethodOfTeachingType.id
Ref: TrainerEventDayLesson.trainerEventDayLessonTypeId > TrainerEventDayLessonType.id
Ref: TrainerEventDayTimeSlot.addedById > User.id
Ref: TrainerEventDayTimeSlot.trainerEventId > TrainerEvent.id
Ref: TrainerEventDayTimeSlot.eventDayId > EventDay.id
Ref: TraineeTrainerReview.traineeEventId > TraineeEvent.id
Ref: TraineeTrainerReview.trainerEventId > TrainerEvent.id
Ref: Coupon.inviterId > User.id
Ref: Coupon.eventId > Event.id
Ref: TraineeEventReview.eventId > Event.id
Ref: TraineeEventReview.traineeEventId - TraineeEvent.id
Ref: Cv.rankId > Rank.id
Ref: TrainingExperience.cvId > Cv.id
Ref: Education.professionId > Profession.id
Ref: Education.specialtyId > Specialty.id
Ref: Education.qualificationId > Qualification.id
Ref: Education.cvId > Cv.id
Ref: ProfessionalSkills.academicRankId > AcademicRank.id
Ref: ProfessionalSkills.cvId > Cv.id
Ref: ScientificResearch.cvId > Cv.id