diff --git a/package.json b/package.json index c6eef921..7cbd576f 100644 --- a/package.json +++ b/package.json @@ -7,26 +7,88 @@ "author": "Angelo Reale", "license": "HPL3-ECO-AND-ANC", "scripts": { - "schema:migrate:private": "npx prisma migrate dev --schema prisma/schema-private.prisma", - "schema:migrate:public": "npx prisma migrate dev --schema prisma/schema-public.prisma", + "schema:migrate:auth": "npx prisma migrate dev --schema prisma/schemas/private/schema.prisma", + "schema:migrate:public": "npx prisma migrate dev --schema prisma/schemas/private/schema-public.prisma", + "schema:migrate:phi": "npx prisma migrate dev --schema prisma/schemas/private/schema-phi.prisma", + "schema:migrate:pii": "npx prisma migrate dev --schema prisma/schemas/private/schema-pii.prisma", + "schema:migrate:fii": "npx prisma migrate dev --schema prisma/schemas/private/schema-fii.prisma", + "schema:migrate:gii": "npx prisma migrate dev --schema prisma/schemas/private/schema-gii.prisma", + "schema:migrate:feel": "npx prisma migrate dev --schema prisma/schemas/private/schema-feel.prisma", + "schema:migrate:do": "npx prisma migrate dev --schema prisma/schemas/private/schema-do.prisma", + "schema:migrate:write": "npx prisma migrate dev --schema prisma/schemas/private/schema-write.prisma", + "schema:migrate:be": "npx prisma migrate dev --schema prisma/schemas/private/schema-be.prisma", + "schema:migrate:make": "npx prisma migrate dev --schema prisma/schemas/private/schema-make.prisma", + "schema:migrate:invest": "npx prisma migrate dev --schema prisma/schemas/private/schema-invest.prisma", + "schema:migrate:views": "npx prisma migrate dev --schema prisma/schemas/private/schema-views.prisma", + "schema:migrate:private": "npm run schema:migrate:auth && npm run schema:migrate:phi && npm run schema:migrate:pii && npm run schema:migrate:fii && npm run schema:migrate:gii && npm run schema:migrate:feel && npm run schema:migrate:do && npm run schema:migrate:write && npm run schema:migrate:be && npm run schema:migrate:make && npm run schema:migrate:invest && npm run schema:migrate:views && npm run schema:migrate:public", "schema:migrate:all": "npm run schema:migrate:private && npm run schema:migrate:public", - "schema:push:private": "npx prisma db push --schema prisma/schema-private.prisma", - "schema:pull:private": "npx prisma db pull --schema prisma/schema-private.prisma", - "schema:push:public": "npx prisma db push --schema prisma/schema-public.prisma", - "schema:pull:public": "npx prisma db pull --schema prisma/schema-public.prisma", - "schema:push:all": "npm run schema:push:private && npm run schema:push:public", + "schema:pull:phi": "npx prisma db pull --schema prisma/schemas/private/schema-phi.prisma", + "schema:pull:pii": "npx prisma db pull --schema prisma/schemas/private/schema-pii.prisma", + "schema:pull:fii": "npx prisma db pull --schema prisma/schemas/private/schema-fii.prisma", + "schema:pull:gii": "npx prisma db pull --schema prisma/schemas/private/schema-gii.prisma", + "schema:pull:feel": "npx prisma db pull --schema prisma/schemas/private/schema-feel.prisma", + "schema:pull:do": "npx prisma db pull --schema prisma/schemas/private/schema-do.prisma", + "schema:pull:write": "npx prisma db pull --schema prisma/schemas/private/schema-write.prisma", + "schema:pull:be": "npx prisma db pull --schema prisma/schemas/private/schema-be.prisma", + "schema:pull:make": "npx prisma db pull --schema prisma/schemas/private/schema-make.prisma", + "schema:pull:invest": "npx prisma db pull --schema prisma/schemas/private/schema-invest.prisma", + "schema:pull:views": "npx prisma db pull --schema prisma/schemas/private/schema-views.prisma", + "schema:pull:auth": "npx prisma db pull --schema prisma/schemas/private/schema.prisma", + "schema:pull:public": "npx prisma db pull --schema prisma/schemas/private/schema-public.prisma", + "schema:pull:private": "npm run schema:pull:auth && npm run schema:pull:phi && npm run schema:pull:pii && npm run schema:pull:fii && npm run schema:pull:gii && npm run schema:pull:feel && npm run schema:pull:do && npm run schema:pull:write && npm run schema:pull:be && npm run schema:pull:invest && npm run schema:pull:views && npm run schema:pull:public", "schema:pull:all": "npm run schema:pull:private && npm run schema:pull:public", - "schema:seed:private": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && prisma db seed --schema=./prisma/schema-private.prisma -- private", - "schema:seed:getseeds": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && node --loader ts-node/esm prisma/getSeeds.mts --schema=./prisma/schema-private.prisma -- private", - "schema:seed:public": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && npm run schema:generate:public:standalone && prisma db seed --schema=./prisma/schema-public.prisma -- public", - "schema:seed:mock": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && npm run schema:generate:public:standalone && prisma db seed --schema=./prisma/schema-public.prisma -- mock", - "schema:seed:all": "NEXUS_STANDALONE=true npm run schema:seed:private && npm run schema:seed:public", - "schema:generate:private": "npx prisma generate --no-engine --schema=./prisma/schema-private.prisma", - "schema:generate:public": "npx prisma generate --no-engine --schema=./prisma/schema-public.prisma", + "schema:push:phi": "npx prisma db push --schema prisma/schemas/private/schema-phi.prisma", + "schema:push:pii": "npx prisma db push --schema prisma/schemas/private/schema-pii.prisma", + "schema:push:fii": "npx prisma db push --schema prisma/schemas/private/schema-fii.prisma", + "schema:push:gii": "npx prisma db push --schema prisma/schemas/private/schema-gii.prisma", + "schema:push:feel": "npx prisma db push --schema prisma/schemas/private/schema-feel.prisma", + "schema:push:do": "npx prisma db push --schema prisma/schemas/private/schema-do.prisma", + "schema:push:write": "npx prisma db push --schema prisma/schemas/private/schema-write.prisma", + "schema:push:be": "npx prisma db push --schema prisma/schemas/private/schema-be.prisma", + "schema:push:make": "npx prisma db push --schema prisma/schemas/private/schema-make.prisma", + "schema:push:invest": "npx prisma db push --schema prisma/schemas/private/schema-invest.prisma", + "schema:push:views": "npx prisma db push --schema prisma/schemas/private/schema-views.prisma", + "schema:push:public": "npx prisma db push --schema prisma/schemas/private/schema-public.prisma", + "schema:push:auth": "npx prisma db push --schema prisma/schemas/private/schema.prisma", + "schema:push:private": "npm run schema:push:auth && npm run schema:push:phi && npm run schema:push:pii && npm run schema:push:fii && npm run schema:push:gii && npm run schema:push:feel && npm run schema:push:do && npm run schema:push:write && npm run schema:push:be && npm run schema:push:invest && npm run schema:push:views && npm run schema:push:public", + "schema:push:all": "npm run schema:push:private && npm run schema:push:public", + "schema:generate:phi": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-phi.prisma", + "schema:generate:pii": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-pii.prisma", + "schema:generate:fii": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-fii.prisma", + "schema:generate:gii": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-gii.prisma", + "schema:generate:feel": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-feel.prisma", + "schema:generate:do": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-do.prisma", + "schema:generate:write": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-write.prisma", + "schema:generate:be": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-be.prisma", + "schema:generate:make": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-make.prisma", + "schema:generate:invest": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-invest.prisma", + "schema:generate:views": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-views.prisma", + "schema:generate:public": "npx prisma generate --no-engine --schema prisma/schemas/private/schema-public.prisma", + "schema:generate:auth": "npx prisma generate --no-engine --schema prisma/schemas/private/schema.prisma", + "schema:generate:private": "npm run schema:generate:auth && npm run schema:generate:phi && npm run schema:generate:pii && npm run schema:generate:fii && npm run schema:generate:gii && npm run schema:generate:feel && npm run schema:generate:do && npm run schema:generate:write && npm run schema:generate:be && npm run schema:generate:invest && npm run schema:generate:views && npm run schema:generate:public", + "schema:generate:public": "npx prisma generate --no-engine --schema=./prisma/schemas/public/schema.prisma", "schema:generate:all": "npm run schema:generate:private && npm run schema:generate:public", - "schema:generate:private:standalone": "npx prisma generate --schema=./prisma/schema-private.prisma", - "schema:generate:public:standalone": "npx prisma generate --schema=./prisma/schema-public.prisma", - "schema:generate:all:standalone": "npm run schema:generate:private:standalone && npm run schema:generate:public:standalone", + "schema:generate:standalone:phi": "npx prisma generate --schema prisma/schemas/private/schema-phi.prisma", + "schema:generate:standalone:pii": "npx prisma generate --schema prisma/schemas/private/schema-pii.prisma", + "schema:generate:standalone:fii": "npx prisma generate --schema prisma/schemas/private/schema-fii.prisma", + "schema:generate:standalone:gii": "npx prisma generate --schema prisma/schemas/private/schema-gii.prisma", + "schema:generate:standalone:feel": "npx prisma generate --schema prisma/schemas/private/schema-feel.prisma", + "schema:generate:standalone:do": "npx prisma generate --schema prisma/schemas/private/schema-do.prisma", + "schema:generate:standalone:write": "npx prisma generate --schema prisma/schemas/private/schema-write.prisma", + "schema:generate:standalone:be": "npx prisma generate --schema prisma/schemas/private/schema-be.prisma", + "schema:generate:standalone:make": "npx prisma generate --schema prisma/schemas/private/schema-make.prisma", + "schema:generate:standalone:invest": "npx prisma generate --schema prisma/schemas/private/schema-invest.prisma", + "schema:generate:standalone:views": "npx prisma generate --schema prisma/schemas/private/schema-views.prisma", + "schema:generate:standalone:public": "npx prisma generate --schema prisma/schemas/public/schema.prisma", + "schema:generate:standalone:auth": "npx prisma generate --schema prisma/schemas/private/schema.prisma", + "schema:generate:standalone:private": "npm run schema:generate:standalone:auth && npm run schema:generate:standalone:phi && npm run schema:generate:standalone:pii && npm run schema:generate:standalone:fii && npm run schema:generate:standalone:gii && npm run schema:generate:standalone:feel && npm run schema:generate:standalone:do && npm run schema:generate:standalone:write && npm run schema:generate:standalone:be && npm run schema:generate:standalone:invest && npm run schema:generate:standalone:views && npm run schema:generate:standalone:public", + "schema:generate:standalone:public": "npx prisma generate --schema=./prisma/schemas/public/schema.prisma", + "schema:generate:standalone:all": "npm run schema:generate:standalone:private && npm run schema:generate:standalone:public", + "schema:seed:private": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && prisma db seed --schema=./prisma/schemas/private/schema.prisma -- private", + "schema:seed:getseeds": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && node --loader ts-node/esm prisma/getSeeds.mts --schema=./prisma/schemas/private/schema.prisma -- private", + "schema:seed:public": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && npm run schema:generate:public:standalone && prisma db seed --schema=./prisma/schemas/public/schema.prisma -- public", + "schema:seed:mock": "NEXUS_STANDALONE=true npm run schema:generate:private:standalone && npm run schema:generate:public:standalone && prisma db seed --schema=./prisma/schemas/public/schema.prisma -- mock", + "schema:seed:all": "NEXUS_STANDALONE=true npm run schema:seed:private && npm run schema:seed:public", "dev": "npm run schema:generate:all && next dev -p 3001", "dev:vm": "npm run schema:generate:all:standalone && next dev -p 3001", "build": "npm run schema:generate:all && next build", diff --git a/prisma/private/prisma/schema/__auth-orgs.prisma b/prisma/private/prisma/schema/__auth-orgs.prisma new file mode 100644 index 00000000..e648cb19 --- /dev/null +++ b/prisma/private/prisma/schema/__auth-orgs.prisma @@ -0,0 +1,295 @@ +// to-do: __auth-orgs.prisma +// ---- @PRIVATE: Org Governance. ---- +// +// @org stuff. +// User Groups. +model Communities { + id String @id @default(auto()) @map("_id") @db.ObjectId + users User[] @relation(fields: [usersIds], references: [id]) + usersIds String[] @db.ObjectId + + status ECommunitiesStatus + + legalEntity IRegisteredCompany + name String + description String + urls String[] + image String? + + + favorites MakeListings[] @relation("communityFavorites", fields: [favoritesIds], references: [id]) + favoritesIds String[] @db.ObjectId + + ownedListings MakeListings[] @relation("listingCommunityOwner") + createdListings MakeListings[] @relation("listingCommunityCreator") + + ownedMessages Messages[] @relation("messageCommunityOwner") + createdMessages Messages[] @relation("messageCommunityCreator") + + services Services[] @relation("communityServices", fields: [servicesIds], references: [id]) + servicesIds String[] @db.ObjectId + + abilities Abilities[] @relation("communityAbilities", fields: [abilitiesIds], references: [id]) + abilitiesIds String[] @db.ObjectId + + authorityOn InvestContracts[] @relation("investCommunityAuthorities", fields: [authorityOnIds], references: [id]) + authorityOnIds String[] @db.ObjectId + + signedOn InvestContracts[] @relation("investCommunitySignatures", fields: [signedOnIds], references: [id]) + signedOnIds String[] @db.ObjectId + + ownedServices Services[] @relation("serviceCommunityOwner") + createdServices Services[] @relation("serviceCommunityCreator") + + ownedFeatures Features[] @relation("featureCommunityOwner") + createdFeatures Features[] @relation("featureCommunityCreator") + + ownedAbilities Abilities[] @relation("abilityCommunityOwner") + createdAbilities Abilities[] @relation("abilityCommunityCreator") + + ownedWriteYou WriteYou[] @relation("writeYouCommunityOwner") + createdWriteYou WriteYou[] @relation("writeYouCommunityCreator") + + ownedWriteSocial WriteSocial[] @relation("writeSocialCommunityOwner") + createdWriteSocial WriteSocial[] @relation("writeSocialCommunityCreator") + + ownedWriteIdeas WriteIdeas[] @relation("writeIdeasCommunityOwner") + createdWriteIdeas WriteIdeas[] @relation("writeIdeasCommunityCreator") + + ownedWritePublications WritePublications[] @relation("writePublicationsCommunityOwner") + createdPublications WritePublications[] @relation("writePublicationsCommunityCreator") + + ownedWriteWits WriteWits[] @relation("writeWitsCommunityOwner") + createdWriteWits WriteWits[] @relation("writeWitsCommunityCreator") + + ownedWriteCogitos WriteCogitos[] @relation("writeCogitosCommunityOwner") + createdWriteCogitos WriteCogitos[] @relation("writeCogitosCommunityCreator") + + ownedWriteHopes WriteHopes[] @relation("writeHopesCommunityOwner") + createdWriteHopes WriteHopes[] @relation("writeHopesCommunityCreator") + + ownedWriteOpinions WriteOpinions[] @relation("writeOpinionsCommunityOwner") + createdWriteOpinions WriteOpinions[] @relation("writeOpinionsCommunityCreator") + + ownedWriteThreads WriteThreads[] @relation("writeThreadsCommunityOwner") + createdWriteThreads WriteThreads[] @relation("writeThreadsCommunityCreator") + + ownedWriteLearnings WriteLearnings[] @relation("writeLearningsCommunityOwner") + createdWriteLearnings WriteLearnings[] @relation("writeLearningsCommunityCreator") + + ownedWriteDocs WriteDocs[] @relation("writeDocsCommunityOwner") + createdWriteDocs WriteDocs[] @relation("writeDocsCommunityCreator") + + ownedWriteMedDocs WriteMedDocs[] @relation("writeMedDocsCommunityOwner") + createdWriteMedDocs WriteMedDocs[] @relation("writeMedDocsCommunityCreator") + + ownedMakeRecipes MakeRecipes[] @relation("makeRecipesCommunityOwner") + createdMakeRecipes MakeRecipes[] @relation("makeRecipesCommunityCreator") + + ownedMakeListings MakeListings[] @relation("makeListingsCommunityOwner") + createdMakeListings MakeListings[] @relation("makeListingsCommunityCreator") + + ownedMakeYou MakeYou[] @relation("writeYouCommunityOwner") + createdMakeYou MakeYou[] @relation("writeYouCommunityCreator") + + ownedMakeSocial MakeSocial[] @relation("writeSocialCommunityOwner") + createdMakeSocial MakeSocial[] @relation("writeSocialCommunityCreator") + + ownedMakeSpaces MakeSpaces[] @relation("makeSpacesCommunityOwner") + createdMakeSpaces MakeSpaces[] @relation("makeSpacesCommunityCreator") + + ownedMakeProcurements MakeProcurements[] @relation("makeProcurementsCommunityOwner") + createdMakeProcurements MakeProcurements[] @relation("makeProcurementsCommunityCreator") + + ownedMakeThings MakeThings[] @relation("makeThingsCommunityOwner") + createdMakeThings MakeThings[] @relation("makeThingsCommunityCreator") + + ownedMakeInventories MakeInventories[] @relation("makeInventoriesCommunityOwner") + createdMakeInventories MakeInventories[] @relation("makeInventoriesCommunityCreator") + + ownedMakeItems MakeItems[] @relation("makeItemsCommunityOwner") + createdMakeItems MakeItems[] @relation("makeItemsCommunityCreator") + + ownedMakeFunctions MakeFunctions[] @relation("makeFunctionsCommunityOwner") + createdMakeFunctions MakeFunctions[] @relation("makeFunctionsCommunityCreator") + + ownedMakeProfiles MakeYou[] @relation("makeYouCommunityOwner") + createdMakeProfiles MakeYou[] @relation("makeYouCommunityCreator") + + ownedInvestTransactions InvestTransactions[] @relation("investTransactionsCommunityOwner") + createdInvestTransactions InvestTransactions[] @relation("investTransactionsCommunityCreator") + + ownedInvestTypes InvestTypes[] @relation("investTypesCommunityOwner") + createdInvestTypes InvestTypes[] @relation("investTypesCommunityCreator") + + ownedInvestWallets InvestWallets[] @relation("investWalletsCommunityOwner") + createdInvestWallets InvestWallets[] @relation("investWalletsCommunityCreator") + + ownedInvestIncomes InvestIncomes[] @relation("investIncomesCommunityOwner") + createdInvestIncomes InvestIncomes[] @relation("investIncomesCommunityCreator") + + ownedInvestExpenses InvestExpenses[] @relation("investExpensesCommunityOwner") + createdInvestExpenses InvestExpenses[] @relation("investExpensesCommunityCreator") + + ownedInvestContracts InvestContracts[] @relation("investContractsCommunityOwner") + createdInvestContracts InvestContracts[] @relation("investContractsCommunityCreator") + + ownedInvestPositions InvestPositions[] @relation("investPositionsCommunityOwner") + createdInvestPositions InvestPositions[] @relation("investPositionsCommunityCreator") + + ownedInvestSharedPositions InvestSharedPositions[] @relation("investSharedPositionsCommunityOwner") + createdInvestSharedPositions InvestSharedPositions[] @relation("investSharedPositionsCommunityCreator") + + ownedInvestYou InvestYou[] @relation("investPortfoliosCommunityOwner") + createdInvestYou InvestYou[] @relation("investPortfoliosCommunityCreator") + + ownedInvestSocial InvestSocial[] @relation("investSocialCommunityOwner") + createdInvestSocial InvestSocial[] @relation("investSocialCommunityCreator") + + ownedDoDos Dos[] @relation("doDosCommunityOwner") + createdDoDos Dos[] @relation("doDosCommunityCreator") + + ownedDoQuests DoQuests[] @relation("doQuestsCommunityOwner") + createdDoQuests DoQuests[] @relation("doQuestsCommunityCreator") + + ownedDoTypes DoTypes[] @relation("doTypesCommunityOwner") + createdDoTypes DoTypes[] @relation("doTypesCommunityCreator") + + ownedDoContexts DoContexts[] @relation("doContextsCommunityOwner") + createdDoContexts DoContexts[] @relation("doContextsCommunityCreator") + + ownedDoRoutines DoRoutines[] @relation("doRoutinesCommunityOwner") + createdDoRoutines DoRoutines[] @relation("doRoutinesCommunityCreator") + + ownedDoDifficulties DoDifficulties[] @relation("doDifficultiesCommunityOwner") + createdDoDifficulties DoDifficulties[] @relation("doDifficultiesCommunityCreator") + + ownedDoModes DoModes[] @relation("doModesCommunityOwner") + createdDoModes DoModes[] @relation("doModesCommunityCreator") + + ownedDoProducts DoProducts[] @relation("doProductsCommunityOwner") + createdDoProducts DoProducts[] @relation("doProductsCommunityCreator") + + ownedDoQuestTypes DoQuestTypes[] @relation("doQuestTypesCommunityOwner") + createdDoQuestTypes DoQuestTypes[] @relation("doQuestTypesCommunityCreator") + + ownedDoScores DoScores[] @relation("doScoresCommunityOwner") + createdDoScores DoScores[] @relation("doScoresCommunityCreator") + + ownedDoLogs DoLogs[] @relation("doLogsCommunityOwner") + createdDoLogs DoLogs[] @relation("doLogsCommunityCreator") + + ownedDoReports DoReports[] @relation("doReportsCommunityOwner") + createdDoReports DoReports[] @relation("doReportsCommunityCreator") + + ownedDoYou DoYou[] @relation("doYouCommunityOwner") + createdDoYou DoYou[] @relation("doYouCommunityCreator") + + ownedDoSocial DoSocial[] @relation("doSocialCommunityOwner") + createdDoSocial DoSocial[] @relation("doSocialCommunityCreator") + + ownedDoSquads DoSquads[] @relation("doSquadsCommunityOwner") + createdDoSquads DoSquads[] @relation("doSquadsCommunityCreator") + + ownedDoDirectories DoDirectories[] @relation("doDirectoriesCommunityOwner") + createdDoDirectories DoDirectories[] @relation("doDirectoriesCommunityCreator") + + ownedBeYou BeYou[] @relation("beYouCommunityOwner") + createdBeYou BeYou[] @relation("beYouCommunityCreator") + + ownedBeSocial BeSocial[] @relation("beSocialCommunityOwner") + createdBeSocial BeSocial[] @relation("beSocialCommunityCreator") + + ownedBeCommunities BeCommunities[] @relation("beCommunitiesCommunityOwner") + createdBeCommunities BeCommunities[] @relation("beCommunitiesCommunityCreator") + + ownedBeCharacters BeCharacters[] @relation("beCharactersCommunityOwner") + createdBeCharacters BeCharacters[] @relation("beCharactersCommunityCreator") + + ownedBeTopics BeTopics[] @relation("beTopicsCommunityOwner") + createdBeTopics BeTopics[] @relation("beTopicsCommunityCreator") + + ownedBeAwards BeAwards[] @relation("beAwardsCommunityOwner") + createdBeAwards BeAwards[] @relation("beAwardsCommunityCreator") + + ownedBeDeals BeDeals[] @relation("beDealsCommunityOwner") + createdBeDeals BeDeals[] @relation("beDealsCommunityCreator") + + ownedBeContacts BeContacts[] @relation("beContactsCommunityOwner") + createdBeContacts BeContacts[] @relation("beContactsCommunityCreator") + managedBeContacts BeContacts[] @relation("beContactsCommunityManager") + + ownedBeRelations BeRelations[] @relation("beRelationsCommunityOwner") + createdBeRelations BeRelations[] @relation("beRelationsCommunityCreator") + + ownedBeCourtships BeCourtships[] @relation("beCourtshipsCommunityOwner") + createdBeCourtships BeCourtships[] @relation("beCourtshipsCommunityCreator") + + ownedBeMailboxes BeMailboxes[] @relation("beMailboxesCommunityOwner") + createdBeMailboxes BeMailboxes[] @relation("beMailboxesCommunityCreator") + + ownedBeLetters BeLetters[] @relation("beLettersCommunityOwner") + createdBeLetters BeLetters[] @relation("beLettersCommunityCreator") + + ownedBeEvents BeEvents[] @relation("beEventsCommunityOwner") + createdBeEvents BeEvents[] @relation("beEventsCommunityCreator") + + ownedBeCalendars BeCalendars[] @relation("beCalendarsCommunityOwner") + createdBeCalendars BeCalendars[] @relation("beCalendarsCommunityCreator") + + ownedBeSocialCommunities BeSocialCommunities[] @relation("beSocialCommunitiesCommunityOwner") + createdBeSocialCommunity BeSocialCommunities[] @relation("beSocialCommunitiesCommunityCreator") + + ownedNexusDays NexusDays[] @relation("nexusDaysCommunityOwner") + createdNexusDays NexusDays[] @relation("nexusDaysCommunityCreator") + + ownedNexusWeeks NexusWeeks[] @relation("nexusWeeksCommunityOwner") + createdNexusWeeks NexusWeeks[] @relation("nexusWeeksCommunityCreator") + + ownedNexusQuarters NexusQuarters[] @relation("nexusQuartersCommunityOwner") + createdNexusQuarters NexusQuarters[] @relation("nexusQuartersCommunityCreator") + + ownedNexusYears NexusYears[] @relation("nexusYearsCommunityOwner") + createdNexusYears NexusYears[] @relation("nexusYearsCommunityCreator") + + ownedNexusMoments NexusMoments[] @relation("nexusMomentsCommunityOwner") + createdNexusMoments NexusMoments[] @relation("nexusMomentsCommunityCreator") + + ownedNexusSpaces NexusSpaces[] @relation("nexusSpacesCommunityOwner") + createdNexusSpaces NexusSpaces[] @relation("nexusSpacesCommunityCreator") + + ownedNexusContexts NexusContexts[] @relation("nexusContextsCommunityOwner") + createdNexusContexts NexusContexts[] @relation("nexusContextsCommunityCreator") + + ownedViewTime ViewTime[] @relation("viewTimeCommunityOwner") + createdViewTime ViewTime[] @relation("viewTimeCommunityCreator") + + ownedViewSpaces ViewSpaces[] @relation("viewSpacesCommunityOwner") + createdViewSpaces ViewSpaces[] @relation("viewSpacesCommunityCreator") + + ownedViewCharts ViewCharts[] @relation("viewChartsCommunityOwner") + createdViewCharts ViewCharts[] @relation("viewChartsCommunityCreator") + + ownedViewDashboards ViewDashboards[] @relation("viewDashboardsCommunityOwner") + createdViewDashboards ViewDashboards[] @relation("viewDashboardsCommunityCreator") + + ownedViewListings ViewListings[] @relation("viewListingsCommunityOwner") + createdViewListings ViewListings[] @relation("viewListingsCommunityCreator") + + roles Roles[] @relation("communityRoles", fields: [rolesIds], references: [id]) + rolesIds String[] @db.ObjectId + + messagesSent Messages[] @relation("communityMessagesSent") + messagesSentIds String[] @db.ObjectId + + messagesReceived Messages[] @relation("communityMessagesReceived", fields: [messagesReceivedIds], references: [id]) + messagesReceivedIds String[] @db.ObjectId + + userOwner User? @relation("ownedCommunities", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("createdCommunities", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("communities") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__auth-sec.prisma b/prisma/private/prisma/schema/__auth-sec.prisma new file mode 100644 index 00000000..5b33450f --- /dev/null +++ b/prisma/private/prisma/schema/__auth-sec.prisma @@ -0,0 +1,757 @@ +// to-do: __auth-sec.prisma +// ---- @PRIVATE: App Governance. ---- +// +// @auth stuff. +model Account { + id String @id @default(auto()) @map("_id") @db.ObjectId + userId String @db.ObjectId + type String + provider String + providerAccountId String @map("provider_account_id") + refresh_token String? @db.String + access_token String? @db.String + expires_at Int? + token_type String? + scope String? + id_token String? @db.String + session_state String? + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + + @@unique([provider, providerAccountId]) + @@map("account") +} + +model Session { + id String @id @default(auto()) @map("_id") @db.ObjectId + sessionToken String @unique + userId String @db.ObjectId + expires DateTime + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + mailboxes BeMailboxes[] @relation("beMailboxesActiveSession") + mailboxesTokens String[] + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + @@map("session") +} + +model VerificationToken { + id String @id @default(auto()) @map("_id") @db.ObjectId + identifier String + token String + expires DateTime + + @@unique([identifier, token]) + @@map("verificationToken") +} + +// Optional for WebAuthn support +model Authenticator { + credentialID String @id @map("_id") + userId String @db.ObjectId + providerAccountId String + credentialPublicKey String + counter Int + credentialDeviceType String + credentialBackedUp Boolean + transports String? + + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + + @@unique([userId, credentialID]) + @@map("authenticator") +} + +// Email / Matrix / websocket Messages / Whatever +model Messages { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + description ILocaleString + + type EMessageType + status EMessageStatus + nature EMessageNature + channels EMessageChannel[] + + title ILocaleString + body ILocaleString + + queuedOn DateTime @db.Date + scheduledOn DateTime @db.Date + sentOn DateTime @db.Date + + fromUser User? @relation("userMessagesSent", fields: [fromUserId], references: [id]) + fromUserId String? @db.ObjectId + + fromCommunity Communities? @relation("communityMessagesSent", fields: [fromCommunityId], references: [id]) + fromCommunityId String? @db.ObjectId + + toUser User[] @relation("userMessagesReceived", fields: [toUserIds], references: [id]) + toUserIds String[] @db.ObjectId + + toCommunities Communities[] @relation("communityMessagesReceived", fields: [toCommunitiesIds], references: [id]) + toCommunitiesIds String[] @db.ObjectId + + toListings MakeListings[] @relation("listingMessagesReceived", fields: [toCommunitiesIds], references: [id]) + toListingsIds String[] @db.ObjectId + + userOwner User? @relation("messageUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("messageCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("messageUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("messageCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("messages") +} + +// Flux Auth: broad. +model Roles { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String? + status ERoleStatus + type ERoleType + nature ERoleNature + + abilities Abilities[] @relation("roleAbilities", fields: [abilitiesIds], references: [id]) + abilitiesIds String[] @db.ObjectId + + users User[] @relation("roles", fields: [usersIds], references: [id]) + usersIds String[] @db.ObjectId + communities Communities[] @relation("communityRoles", fields: [communitiesIds], references: [id]) + communitiesIds String[] @db.ObjectId + + @@map("roles") +} + +// Flux Auth: strict. +model Abilities { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String? + status EAbilityStatus + type EAbilityType + nature EAbilityNature + target String? + action String? + + features Features[] @relation("featureAbilities", fields: [featuresIds], references: [id]) + featuresIds String[] @db.ObjectId + + roles Roles[] @relation("roleAbilities", fields: [rolesIds], references: [id]) + rolesIds String[] @db.ObjectId + + users User[] @relation("userAbilities", fields: [usersIds], references: [id]) + usersIds String[] @db.ObjectId + communities Communities[] @relation("communityAbilities", fields: [communitiesIds], references: [id]) + communitiesIds String[] @db.ObjectId + + userOwner User? @relation("abilityUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("abilityCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("abilityUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("abilityCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("abilities") +} + +// Customer Enablement. +model Services { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String? + status EServiceStatus + type EServiceType + nature EServiceNature + + features Features[] @relation("serviceFeatures", fields: [featuresIds], references: [id]) + featuresIds String[] @db.ObjectId + + users User[] @relation("userServices", fields: [usersIds], references: [id]) + usersIds String[] @db.ObjectId + communities Communities[] @relation("communityServices", fields: [communitiesIds], references: [id]) + communitiesIds String[] @db.ObjectId + + userOwner User? @relation("serviceUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("serviceCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("serviceUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("serviceCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("services") +} + +// Feature Flags. +model Features { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String? + status EFeatureStatus + type EFeatureType + nature EFeatureNature + + services Services[] @relation("serviceFeatures", fields: [servicesIds], references: [id]) + servicesIds String[] @db.ObjectId + + abilities Abilities[] @relation("featureAbilities", fields: [abilitiesIds], references: [id]) + abilitiesIds String[] @db.ObjectId + + userOwner User? @relation("featureUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("featureCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("featureUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("featureCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("features") +} + +// Settings +model Settings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + // on-prem access level + vpns IVPN[] + + userOwner User? @relation("settingsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("settingsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("settingsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("settingsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("Settings") +} + +enum EVPNProtocols { + WIREGUARD + OPEN + S2S + ZEROTRUST + GATEWAY +} + +type IJWT { + name String + value String +} + +type ICertificate { + name String // ED25519, RSA, PEM + value String // .pem + authority String // CA, Snakeoil, Penstake, Wallet +} + +type IVPN { + vpnProxyUrl String + vpnProxyToken IJWT + vpnIPs String[] + vpnHostnames String[] + vpnProtocols EVPNProtocols + vpnCertificates ICertificate[] +} + +// globals + +type ILocaleString { + es String? + ca String? + ga String? + eu String? + en String? + cy String? + mt String? + is String? + it String? + pt String? + de String? + fr String? + pl String? + et String? + cz String? + sv String? + da String? + nl String? + nb String? + nn String? + ro String? + sr String? + sl String? + lv String? + lt String? + hr String? + el String? + hu String? + bg String? + bs String? + sq String? + ja String? + ru String? + ar String? + he String? + zh String? + gl String? + sw String? + hi String? + ms String? + bn String? + pa String? + tr String? + fi String? + uk String? +} + +enum ERating { + ZERO + ONE + TWO + THREE + FOUR + FIVE + SIX + SEVEN + EIGHT + NINE + TEN +} + +enum EImpression { + POSITIVE + NEGATIVE + NEUTRAL +} + +enum ECurrency { + EUR + NOK + SEK + CHF + GBP + CZK + PLZ + USD +} + +enum ECadence { + MINUTE + HALF_HOUR + HOURLY + FOUR_HOURS + EIGHT_HOURS + TWELVE_HOURS + DAILY + TWO_DAYS + THREE_DAYS + WORK_DAYS + WEEKENDS + WEEKLY + BI_WEEKLY + MONTHLY + BI_MONTHLY + QUARTERLY + BI_QUARTERLY + SEMESTER + YEARLY + TWO_YEARS + THREE_YEARS + FIVE_YEARS +} + + +enum ECommunitiesStatus { + PRIVATE + INTERNAL + PUBLIC + DELETED +} + +// taxonomies + +enum ETaxonomyStatus { + ACTIVE + PENDING + INACTIVE + DELETED +} + +enum ETaxonomyType { + TAG + ANOTHER_TAG +} + +enum ETaxonomyNature { + SEGMENTED + PUBLIC +} + + +// offers + +enum EOfferStatus { + ACTIVE + PENDING + INACTIVE + DELETED +} + +type ITaxesAndFees { + taxes Float + fees Float + shipping Float +} + +// communities + +enum ECommunitiestatus { + ACTIVE + PENDING + INACTIVE + DELETED +} + + +// listing + +enum EListingStatus { + ACTIVE + PENDING + INACTIVE + DELETED +} + + +// messages + +enum EMessageType { + ANNOUNCEMENT + CAMPAIGN + REVIEW + CHAT + SUPPORT +} + +enum EMessageStatus { + SCHEDULED + PENDING + DELIVERED + VIEWED +} + +enum EMessageNature { + PRIVATE + SEMI_PRIVATE + PUBLIC +} + +enum EMessageChannel { + PUSH_NOTIFICATION + EMAIL + CHAT + SUPPORT_PANEL + Community_CHAT +} + + +// roles +enum ERoleStatus { + ACTIVE + PENDING + INACTIVE + DELETED +} + +enum ERoleNature { + INTERNAL + PUBLIC +} + +enum ERoleType { + ADMIN + USER + Community + CUSTOMER + PROVIDER + INTERNAL_DEV + INTERNAL_MKT + INTERNAL_SALES + INTERNAL_HR + INTERNAL_LEAD + INTERNAL_OPS +} + +enum ERoleAbilites { + SUDO + VIEW_PRIVATE + EDIT_PRIVATE + DELETE_PRIVATE + CREATE_PRIVATE + CREATE_MESSAGE + CREATE_BROADCAST + CREATE_LISTING + MANAGE_TAXONOMIES + MANAGE_Community + MANAGE_USER + MANAGE_REVIEWS + MANAGE_ROLES +} + +// services +enum EServiceStatus { + ACTIVE + INACTIVE + DELINQUENT +} + +enum EServiceNature { + PRIVATE + PUBLIC + COMMON +} + +enum EServiceType { + COMMUNITY + FINANCIAL + CONSUMER + MERCHANT +} + +// features +enum EFeatureStatus { + ACTIVE + INACTIVE + NIGHTLY +} + +enum EFeatureNature { + EXPERIMENTAL + LTS + LEGACY +} + +enum EFeatureType { + INTERFACE + INTEGRATION + EXPERIENCE + PERFORMANCE + SECURITY +} + +// abilities +enum EAbilityStatus { + ACTIVE + INACTIVE + SUSPENDED +} + +enum EAbilityNature { + ROLE_BASED + BILLING_BASED + PRIVILEGE + COMMON + TEMPORARY +} + +enum EAbilityType { + C + R + U + D +} + +// users + +type IPosix { + lat Float + lng Float + radius Float +} + +type IAddress { + street String + additional String + number String + city String + province String + country String + zipCode String + phone String +} + +type ILocation { + geo IPosix? + address IAddress? + name String +} + +type AbilitiesName { + ar String? + bn String? + ca String? + cz String? + da String? + de String? + el String? + en String? + es String + et String? + eu String? + fi String? + fr String? + gl String? + he String? + hi String? + hu String? + it String? + ja String? + ms String? + nl String? + pa String? + pl String? + pt String? + ro String? + ru String? + sv String? + sw String? + tr String? + uk String? + zh String? +} + +type FeaturesName { + es String +} + +type ListingsDescription { + es String +} + +type ListingsLocation { + address ListingsLocationAddress + geo ListingsLocationGeo + name String +} + +type ListingsLocationAddress { + additional String + city String + country String + number String + phone String + province String + street String + zipCode String +} + +type ListingsLocationGeo { + lat Float + lng Float + radius Float +} + +type ListingsTitle { + es String +} + +type MessagesBody { + es String +} + +type MessagesDescription { + es String +} + +type MessagesName { + es String +} + +type MessagesTitle { + es String +} + +type RolesName { + es String +} + +type ServicesName { + ar String? + bn String? + ca String? + cz String? + da String? + de String? + el String? + en String? + es String + et String? + eu String? + fi String? + fr String? + gl String? + he String? + hi String? + hu String? + it String? + ja String? + ms String? + nl String? + pa String? + pl String? + pt String? + ro String? + ru String? + sv String? + sw String? + tr String? + uk String? + zh String? +} + +type TaxonomiesDescription { + es String +} + +type TaxonomiesName { + es String +} + +type UserLocation { + name String +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__auth-user.prisma b/prisma/private/prisma/schema/__auth-user.prisma new file mode 100644 index 00000000..38ed20ed --- /dev/null +++ b/prisma/private/prisma/schema/__auth-user.prisma @@ -0,0 +1,324 @@ +// to-do: __auth-user.prisma +// ---- @PRIVATE: User Governance. ---- +// +// @you stuff. +// Users. +model User { + id String @id @default(auto()) @map("_id") @db.ObjectId + name String? + email String? @unique + emailVerified DateTime? + image String? + accounts Account[] + sessions Session[] + // ownedWallets, ownedBeSocial, pwned yourself first, high score next Strava. + //me hapost:carlo@dpip.cc/sch + // Optional for WebAuthn support + Authenticator Authenticator[] + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + communities Communities[] @relation(fields: [communitiesIds], references: [id]) + communitiesIds String[] @db.ObjectId + location ILocation? + + services Services[] @relation("userServices", fields: [servicesIds], references: [id]) + servicesIds String[] @db.ObjectId + + abilities Abilities[] @relation("userAbilities", fields: [abilitiesIds], references: [id]) + abilitiesIds String[] @db.ObjectId + + authorityOn InvestContracts[] @relation("investUserAuthorities", fields: [authorityOnIds], references: [id]) + authorityOnIds String[] @db.ObjectId + + signedOn InvestContracts[] @relation("investUserSignatures", fields: [signedOnIds], references: [id]) + signedOnIds String[] @db.ObjectId + + // settings String + favorites MakeListings[] @relation("favorites", fields: [favoritesIds], references: [id]) + favoritesIds String[] @db.ObjectId + + favoritesStrings String[] + + messagesSent Messages[] @relation("userMessagesSent") + messagesSentIds String[] @db.ObjectId + + messagesReceived Messages[] @relation("userMessagesReceived", fields: [messagesReceivedIds], references: [id]) + messagesReceivedIds String[] @db.ObjectId + + roles Roles[] @relation("roles", fields: [rolesIds], references: [id]) + rolesIds String[] @db.ObjectId + + // user generated content + + ownedCommunities Communities[] @relation("ownedCommunities") + createdCommunities Communities[] @relation("createdCommunities") + + ownedListings MakeListings[] @relation("makeListingUserOwner") + createdListings MakeListings[] @relation("makeListingUserCreator") + + ownedMessages Messages[] @relation("messageUserOwner") + createdMessages Messages[] @relation("messageUserCreator") + + ownedWriteYou WriteYou[] @relation("writeYouUserOwner") + createdWriteYou WriteYou[] @relation("writeYouUserCreator") + + ownedWriteSocial WriteSocial[] @relation("writeSocialUserOwner") + createdWriteSocial WriteSocial[] @relation("writeSocialUserCreator") + + ownedWriteIdeas WriteIdeas[] @relation("writeIdeasUserOwner") + createdWriteIdeas WriteIdeas[] @relation("writeIdeasUserCreator") + + ownedWritePublications WritePublications[] @relation("writePublicationsUserOwner") + createdWritePublications WritePublications[] @relation("writePublicationsUserCreator") + + ownedWriteWits WriteWits[] @relation("writeWitsUserOwner") + createdWriteWits WriteWits[] @relation("writeWitsUserCreator") + + ownedWriteCogitos WriteCogitos[] @relation("writeCogitosUserOwner") + createdWriteCogitos WriteCogitos[] @relation("writeCogitosUserCreator") + + ownedWriteHopes WriteHopes[] @relation("writeHopesUserOwner") + createdWriteHopes WriteHopes[] @relation("writeHopesUserCreator") + + ownedWriteOpinions WriteOpinions[] @relation("writeOpinionsUserOwner") + createdWriteOpinions WriteOpinions[] @relation("writeOpinionsUserCreator") + + ownedWriteThreads WriteThreads[] @relation("writeThreadsUserOwner") + createdWriteThreads WriteThreads[] @relation("writeThreadsUserCreator") + + ownedWriteLearnings WriteLearnings[] @relation("writeLearningsUserOwner") + createdWriteLearnings WriteLearnings[] @relation("writeLearningsUserCreator") + + ownedWriteDocs WriteDocs[] @relation("writeDocsUserOwner") + createdWriteDocs WriteDocs[] @relation("writeDocsUserCreator") + + ownedWriteMedDocs WriteMedDocs[] @relation("writeMedDocsUserOwner") + createdWriteMedDocs WriteMedDocs[] @relation("writeMedDocsUserCreator") + + ownedMakeYou MakeYou[] @relation("makeYouUserOwner") + createdMakeYou MakeYou[] @relation("makeYouUserCreator") + + ownedMakeSocial MakeSocial[] @relation("makeSocialUserOwner") + createdMakeSocial MakeSocial[] @relation("makeSocialUserCreator") + + ownedMakeRecipes MakeRecipes[] @relation("makeRecipesUserOwner") + createdMakeRecipes MakeRecipes[] @relation("makeRecipesUserCreator") + + ownedMakeListings MakeListings[] @relation("makeListingsUserOwner") + createdMakeListings MakeListings[] @relation("makeListingsUserCreator") + + ownedMakeSpaces MakeSpaces[] @relation("makeSpacesUserOwner") + createdMakeSpaces MakeSpaces[] @relation("makeSpacesUserCreator") + + ownedMakeProcurements MakeProcurements[] @relation("makeProcurementsUserOwner") + createdMakeProcurements MakeProcurements[] @relation("makeProcurementsUserCreator") + + ownedMakeThings MakeThings[] @relation("makeThingsUserOwner") + createdMakeThings MakeThings[] @relation("makeThingsUserCreator") + + ownedMakeInventories MakeInventories[] @relation("makeInventoriesUserOwner") + createdMakeInventories MakeInventories[] @relation("makeInventoriesUserCreator") + + ownedMakeItems MakeItems[] @relation("makeItemsUserOwner") + createdMakeItems MakeItems[] @relation("makeItemsUserCreator") + + ownedMakeFunctions MakeFunctions[] @relation("makeFunctionsUserOwner") + createdMakeFunctions MakeFunctions[] @relation("makeFunctionsUserCreator") + + ownedFeelYou FeelYou[] @relation("feelYouUserOwner") + createdFeelYou FeelYou[] @relation("feelYouUserCreator") + + ownedFeelSocial FeelSocial[] @relation("feelSocialUserOwner") + createdFeelSocial FeelSocial[] @relation("feelSocialUserCreator") + + ownedFeelLike FeelLike[] @relation("feelLikeUserOwner") + createdFeelLike FeelLike[] @relation("feelLikeUserCreator") + + ownedFeelMoods FeelMoods[] @relation("feelMoodsUserOwner") + createdFeelMoods FeelMoods[] @relation("feelMoodsUserCreator") + + ownedFeelConfessions FeelConfessions[] @relation("feelConfessionsUserOwner") + createdFeelConfessions FeelConfessions[] @relation("feelConfessionsUserCreator") + + ownedFeelDreams FeelDreams[] @relation("feelDreamsUserOwner") + createdFeelDreams FeelDreams[] @relation("feelDreamsUserCreator") + + ownedFeelCravings FeelCravings[] @relation("feelCravingsUserOwner") + createdFeelCravings FeelCravings[] @relation("feelCravingsUserCreator") + + ownedFeelSymptoms FeelSymptoms[] @relation("feelSymptomsUserOwner") + createdFeelSymptoms FeelSymptoms[] @relation("feelSymptomsUserCreator") + + ownedInvestTransactions InvestTransactions[] @relation("investTransactionsUserOwner") + createdInvestTransactions InvestTransactions[] @relation("investTransactionsUserCreator") + + ownedInvestYou InvestYou[] @relation("investYouUserOwner") + createdInvestYou InvestYou[] @relation("investYouUserCreator") + + ownedInvestSocial InvestSocial[] @relation("investSocialUserOwner") + createdInvestSocial InvestSocial[] @relation("investSocialUserCreator") + + ownedInvestWallets InvestWallets[] @relation("investWalletsUserOwner") + createdInvestWallets InvestWallets[] @relation("investWalletsUserCreator") + + ownedInvestTypes InvestTypes[] @relation("investTypesUserOwner") + createdInvestTypes InvestTypes[] @relation("investTypesUserCreator") + + ownedInvestIncomes InvestIncomes[] @relation("investIncomesUserOwner") + createdInvestIncomes InvestIncomes[] @relation("investIncomesUserCreator") + + ownedInvestExpenses InvestExpenses[] @relation("investExpensesUserOwner") + createdInvestExpenses InvestExpenses[] @relation("investExpensesUserCreator") + + ownedInvestContracts InvestContracts[] @relation("investContractsUserOwner") + createdInvestContracts InvestContracts[] @relation("investContractsUserCreator") + + ownedInvestPositions InvestPositions[] @relation("investPositionsUserOwner") + createdInvestPositions InvestPositions[] @relation("investPositionsUserCreator") + + ownedInvestSharedPositions InvestSharedPositions[] @relation("investSharedPositionsUserOwner") + createdInvestSharedPositions InvestSharedPositions[] @relation("investSharedPositionsUserCreator") + + ownedDoYou DoYou[] @relation("doYouUserOwner") + createdDoYou DoYou[] @relation("doYouUserCreator") + + ownedDoSocial DoSocial[] @relation("doSocialUserOwner") + createdDoSocial DoSocial[] @relation("doSocialUserCreator") + + ownedDoDos Dos[] @relation("doDosUserOwner") + createdDoDos Dos[] @relation("doDosUserCreator") + + ownedDoQuests DoQuests[] @relation("doQuestsUserOwner") + createdDoQuests DoQuests[] @relation("doQuestsUserCreator") + + ownedDoTypes DoTypes[] @relation("doTypesUserOwner") + createdDoTypes DoTypes[] @relation("doTypesUserCreator") + + ownedDoContexts DoContexts[] @relation("doContextsUserOwner") + createdDoContexts DoContexts[] @relation("doContextsUserCreator") + + ownedDoRoutines DoRoutines[] @relation("doRoutinesUserOwner") + createdDoRoutines DoRoutines[] @relation("doRoutinesUserCreator") + + ownedDoDifficulties DoDifficulties[] @relation("doDifficultiesUserOwner") + createdDoDifficulties DoDifficulties[] @relation("doDifficultiesUserCreator") + + ownedDoModes DoModes[] @relation("doModesUserOwner") + createdDoModes DoModes[] @relation("doModesUserCreator") + + ownedDoProducts DoProducts[] @relation("doProductsUserOwner") + createdDoProducts DoProducts[] @relation("doProductsUserCreator") + + ownedDoQuestTypes DoQuestTypes[] @relation("doQuestTypesUserOwner") + createdDoQuestTypes DoQuestTypes[] @relation("doQuestTypesUserCreator") + + ownedDoScores DoScores[] @relation("doScoresUserOwner") + createdDoScores DoScores[] @relation("doScoresUserCreator") + + ownedDoLogs DoLogs[] @relation("doLogsUserOwner") + createdDoLogs DoLogs[] @relation("doLogsUserCreator") + + ownedDoReports DoReports[] @relation("doReportsUserOwner") + createdDoReports DoReports[] @relation("doReportsUserCreator") + + ownedDoSquads DoSquads[] @relation("doSquadsUserOwner") + createdDoSquads DoSquads[] @relation("doSquadsUserCreator") + + ownedDoDirectories DoDirectories[] @relation("doDirectoriesUserOwner") + createdDoDirectories DoDirectories[] @relation("doDirectoriesUserCreator") + + ownedBeYou BeYou[] @relation("beYouUserOwner") + createdBeYou BeYou[] @relation("beYouUserCreator") + + ownedBeSocial BeSocial[] @relation("beSocialUserOwner") + createdBeSocial BeSocial[] @relation("beSocialUserCreator") + + ownedBeCommunities BeCommunities[] @relation("beCommunitiesUserOwner") + createdBeCommunities BeCommunities[] @relation("beCommunitiesUserCreator") + + ownedBeCharacters BeCharacters[] @relation("beCharactersUserOwner") + createdBeCharacters BeCharacters[] @relation("beCharactersUserCreator") + + ownedBeTopics BeTopics[] @relation("beTopicsUserOwner") + createdBeTopics BeTopics[] @relation("beTopicsUserCreator") + + ownedBeAwards BeAwards[] @relation("beAwardsUserOwner") + createdBeAwards BeAwards[] @relation("beAwardsUserCreator") + + ownedBeDeals BeDeals[] @relation("beDealsUserOwner") + createdBeDeals BeDeals[] @relation("beDealsUserCreator") + + ownedBeContacts BeContacts[] @relation("beContactsUserOwner") + createdBeContacts BeContacts[] @relation("beContactsUserCreator") + managedBeContacts BeContacts[] @relation("beContactsUserManager") + + ownedBeRelations BeRelations[] @relation("beRelationsUserOwner") + createdBeRelations BeRelations[] @relation("beRelationsUserCreator") + + ownedBeCourtships BeCourtships[] @relation("beCourtshipsUserOwner") + createdBeCourtships BeCourtships[] @relation("beCourtshipsUserCreator") + + ownedBeMailboxes BeMailboxes[] @relation("beMailboxesUserOwner") + createdBeMailboxes BeMailboxes[] @relation("beMailboxesUserCreator") + + ownedBeLetters BeLetters[] @relation("beLettersUserOwner") + createdBeLetters BeLetters[] @relation("beLettersUserCreator") + + ownedBeCalendars BeCalendars[] @relation("beCalendarsUserOwner") + createdBeCalendars BeCalendars[] @relation("beCalendarsUserCreator") + + ownedBeEvents BeEvents[] @relation("beEventsUserOwner") + createdBeEvents BeEvents[] @relation("beEventsUserCreator") + + ownedBeSocialCommunities BeSocialCommunities[] @relation("beSocialCommunitiesUserOwner") + createdBeSocialCommunities BeSocialCommunities[] @relation("beSocialCommunitiesUserCreator") + + ownedNexusDays NexusDays[] @relation("nexusDaysUserOwner") + createdNexusDays NexusDays[] @relation("nexusDaysUserCreator") + + ownedNexusWeeks NexusWeeks[] @relation("nexusWeeksUserOwner") + createdNexusWeeks NexusWeeks[] @relation("nexusWeeksUserCreator") + + ownedNexusQuarters NexusQuarters[] @relation("nexusQuartersUserOwner") + createdNexusQuarters NexusQuarters[] @relation("nexusQuartersUserCreator") + + ownedNexusYears NexusYears[] @relation("nexusYearsUserOwner") + createdNexusYears NexusYears[] @relation("nexusYearsUserCreator") + + ownedNexusMoments NexusMoments[] @relation("nexusMomentsUserOwner") + createdNexusMoments NexusMoments[] @relation("nexusMomentsUserCreator") + + ownedNexusSpaces NexusSpaces[] @relation("nexusSpacesUserOwner") + createdNexusSpaces NexusSpaces[] @relation("nexusSpacesUserCreator") + + ownedNexusContexts NexusContexts[] @relation("nexusContextsUserOwner") + createdNexusContexts NexusContexts[] @relation("nexusContextsUserCreator") + + ownedViewTime ViewTime[] @relation("viewTimeUserOwner") + createdViewTime ViewTime[] @relation("viewTimeUserCreator") + + ownedViewSpaces ViewSpaces[] @relation("viewSpacesUserOwner") + createdViewSpaces ViewSpaces[] @relation("viewSpacesUserCreator") + + ownedViewCharts ViewCharts[] @relation("viewChartsUserOwner") + createdViewCharts ViewCharts[] @relation("viewChartsUserCreator") + + ownedViewDashboards ViewDashboards[] @relation("viewDashboardsUserOwner") + createdViewDashboards ViewDashboards[] @relation("viewDashboardsUserCreator") + + ownedViewListings ViewListings[] @relation("viewListingsUserOwner") + createdViewListings ViewListings[] @relation("viewListingsUserCreator") + + ownedServices Services[] @relation("serviceUserOwner") + createdServices Services[] @relation("serviceUserCreator") + + ownedFeatures Features[] @relation("featureUserOwner") + createdFeatures Features[] @relation("featureUserCreator") + + ownedAbilities Abilities[] @relation("abilityUserOwner") + createdAbilities Abilities[] @relation("abilityUserCreator") + + @@map("user") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__be-phi.prisma b/prisma/private/prisma/schema/__be-phi.prisma new file mode 100644 index 00000000..1bc4dcaa --- /dev/null +++ b/prisma/private/prisma/schema/__be-phi.prisma @@ -0,0 +1,91 @@ +// to-do: __be-phi.prisma +// ---- @PRIVATE: Be: Private Health Data. ---- +// +// Your health profile. +model BeHealth { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + heartRates IHeartRates[] + motions IMotion[] + + cardiograms ICardiograms[] + vitalSigns ISmartScales[] + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beHealthUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beHealthCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beHealthUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beHealthCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beHealth") +} + +type ISmartScales { + bodyMass Float + bodyMassIndex Float + unit EWeightUnit + measurement DateTime +} + +type IHeartRates { + value Float + measurement DateTime + motions String[] + workouts String[] +} + +type ICardiograms { + measurement DateTime + + symptoms String[] + + classification E7Classification + leads ICardiogram[] +} + +type ICardiogram { + lead Float + leadOne Float +} + +type IMotion { + title String + measurement Float +} + +enum E7Classification { + Terrible + Poor + BelowAverage + Average + AboveAverage + Good + Awesome +} + +enum EUnit { + METRIC + IMPERIAL +} + +enum EWeightUnit { + KILO + POUND +} + diff --git a/prisma/private/prisma/schema/__be-pii.prisma b/prisma/private/prisma/schema/__be-pii.prisma new file mode 100644 index 00000000..4ccc1f7c --- /dev/null +++ b/prisma/private/prisma/schema/__be-pii.prisma @@ -0,0 +1,579 @@ +// to-do: __be-pii.prisma +// ---- @PRIVATE: Be: Personal Data, Contact, etc. ---- +// +// Your personal profile. +model BeYou { + id String @id @default(auto()) @map("_id") @db.ObjectId + name String + slug String + description ILocaleString + title ILocaleString + body ILocaleString + handle String + + legalFirstName String? + legalLastName String? + citizenships ILocation[] + fiscalResidencies ILocation? + legalResidencies ILocation? + domiciles ILocation? + beAt ILocation? + + salesDeals BeDeals[] @relation("beYouSeller", fields: [salesDealsId], references: [id]) + salesDealsId String[] @db.ObjectId + + buyDeals BeDeals[] @relation("beYouBuyer", fields: [buyDealsId], references: [id]) + buyDealsId String[] @db.ObjectId + + contactProfiles BeContacts[] @relation("beYouContactProfiles", fields: [contactProfilesIds], references: [id]) + contactProfilesIds String[] @db.ObjectId + + lastContactProfile BeContacts? @relation("beYouLastContactProfile", fields: [lastContactProfileId], references: [id]) + lastContactProfileId String? @db.ObjectId + + preferredContactProfile BeContacts? @relation("beYouPreferredContactProfile", fields: [preferredContactProfileId], references: [id]) + preferredContactProfileId String? @db.ObjectId + + communities BeCommunities[] @relation("beYouMembers", fields: [communitiesIds], references: [id]) + communitiesIds String[] @db.ObjectId + + preferredCommunity BeCommunities? @relation("beYouPreferredCommunity", fields: [preferredCommunityId], references: [id]) + preferredCommunityId String? @db.ObjectId + + lastCommunity BeCommunities? @relation("beYouLastCommunity", fields: [lastCommunityId], references: [id]) + lastCommunityId String? @db.ObjectId + + // e.g. [Can Baro Tobacco Shop, Gracia, Genoa, Italy] + movingFrom ILocation[] + movingWithin ILocation[] + movingTo ILocation[] + + activeContracts InvestContracts[] @relation("beYouActiveContracts", fields: [activeContractsIds], references: [id]) + activeContractsIds String[] @db.ObjectId + + pendingContracts InvestContracts[] @relation("beYouPendingContracts", fields: [pendingContractsIds], references: [id]) + pendingContractsIds String[] @db.ObjectId + + finishedContracts InvestContracts[] @relation("beYouFinishedContracts", fields: [finishedContractsIds], references: [id]) + finishedContractsIds String[] @db.ObjectId + + // invest + wallets InvestWallets[] @relation("beYouWallets", fields: [walletsIds], references: [id]) + walletsIds String[] @db.ObjectId + + // portfolios + portfolios InvestYou[] @relation("beYouPortfolio", fields: [portfoliosIds], references: [id]) + portfoliosIds String[] @db.ObjectId + + positions InvestPositions[] @relation("beYouPositions", fields: [positionsIds], references: [id]) + positionsIds String[] @db.ObjectId + + userOwner User? @relation("beYouUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beYouCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beYouUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beYouCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beYou") +} + +// Your contact card, friendships and customer data. +model BeContacts { + emoji String + title ILocaleString + body ILocaleString + slug String + + profilePictures String[] + coverPictures String[] + albumsPictures String[] + wallPictures String[] + + profileVideos String[] + coverVideos String[] + albumsVideos String[] + wallVideos String[] + + assignedTasks Dos[] @relation("doDosAssignees", fields: [assignedTasksIds], references: [id]) + assignedTasksIds String[] @db.ObjectId + + watchedTasks Dos[] @relation("doDosWatchers", fields: [watchedTasksIds], references: [id]) + watchedTasksIds String[] @db.ObjectId + + procurements MakeProcurements[] @relation("beContactsProcurements", fields: [procurementsIds], references: [id]) + procurementsIds String[] @db.ObjectId + + portfolios InvestYou[] @relation("beContactsPortfolios", fields: [portfoliosIds], references: [id]) + portfoliosIds String[] @db.ObjectId + + positions InvestPositions[] @relation("beContactsPositions", fields: [positionsIds], references: [id]) + positionsIds String[] @db.ObjectId + + // courtship + givenGifts MakeItems[] @relation("beContactsGivenGifts", fields: [givenGiftsIds], references: [id]) + givenGiftsIds String[] @db.ObjectId + + receivedGifts MakeItems[] @relation("beContactsReceivedGifts", fields: [receivedGiftsIds], references: [id]) + receivedGiftsIds String[] @db.ObjectId + + likedTopics BeTopics[] @relation("beContactsLikedTopics", fields: [likedTopicsIds], references: [id]) + likedTopicsIds String[] @db.ObjectId + + dislikedTopics BeTopics[] @relation("beContactsDislikedTopics", fields: [dislikedTopicsIds], references: [id]) + dislikedTopicsIds String[] @db.ObjectId + + cityBirth ILocation + citiesResident ILocation[] + + dateBirth DateTime + timeBirth DateTime + + relationshipStatus BeRelations? @relation("beContactsRelationshipStatus", fields: [relationshipStatusId], references: [id]) + relationshipStatusId String? @db.ObjectId + + + // space + workSpaces MakeSpaces[] @relation("beContactsWorkSpaces", fields: [workSpacesIds], references: [id]) + workSpacesIds String[] @db.ObjectId + + homeSpaces MakeSpaces[] @relation("beContactsHomeSpaces", fields: [homeSpacesIds], references: [id]) + homeSpacesIds String[] @db.ObjectId + + socialSpaces MakeSpaces[] @relation("beContactsSocialSpaces", fields: [socialSpacesIds], references: [id]) + socialSpacesIds String[] @db.ObjectId + + // contact + emailAdresses String[] + facebookProfiles String[] + instagramProfiles String[] + linkedInProfiles String[] + xProfiles String[] + mobileNumbers String[] + landlines String[] + websites String[] + + // messaging + lettersSent BeLetters[] @relation("beContactsLettersSent", fields: [lettersSentIds], references: [id]) + lettersSentIds String[] @db.ObjectId + + lettersReceived BeLetters[] @relation("beContactsLettersReceived", fields: [lettersReceivedIds], references: [id]) + lettersReceivedIds String[] @db.ObjectId + + // @PRIVATE + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + description ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beContactsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("beContactsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + userManager User? @relation("beContactsUserManager", fields: [userManagerId], references: [id]) + userManagerId String? @db.ObjectId + + communityOwner Communities? @relation("beContactsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + communityCreator Communities? @relation("beContactsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + communityManager Communities? @relation("beContactsCommunityManager", fields: [communityManagerId], references: [id]) + communityManagerId String? @db.ObjectId + + @@map("beContacts") +} + +// Your org profile. +model BeCommunities { + id String @id @default(auto()) @map("_id") @db.ObjectId + name String + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + handle String + + legalName String + entityType EEntityType + + fiscalResidencies ILocation[] + legalResidencies ILocation[] + socialResidencies ILocation[] + offices ILocation[] + + socialRegistries IRegisteredCompany[] + + members BeYou[] @relation("beCommunitiesMembers", fields: [membersIds], references: [id]) + membersIds String[] @db.ObjectId + + mailboxes BeMailboxes[] @relation("beCommunitiesMailboxes", fields: [mailboxesIds], references: [id]) + mailboxesIds String[] @db.ObjectId + + contactProfiles BeContacts[] @relation("beCommunitiesContactProfiles", fields: [contactProfilesIds], references: [id]) + contactProfilesIds String[] @db.ObjectId + + lastContactProfile BeContacts? @relation("beCommunitiesLastContactProfile", fields: [lastContactProfileId], references: [id]) + lastContactProfileId String? @db.ObjectId + + preferredContactProfile BeContacts? @relation("beCommunitiesPreferredContactProfile", fields: [preferredContactProfileId], references: [id]) + preferredContactProfileId String? @db.ObjectId + + activeContracts InvestContracts[] @relation("beCommunitiesActiveContracts", fields: [activeContractsIds], references: [id]) + activeContractsIds String[] @db.ObjectId + + pendingContracts InvestContracts[] @relation("beCommunitiesPendingContracts", fields: [pendingContractsIds], references: [id]) + pendingContractsIds String[] @db.ObjectId + + finishedContracts InvestContracts[] @relation("beCommunitiesFinishedContracts", fields: [finishedContractsIds], references: [id]) + finishedContractsIds String[] @db.ObjectId + + // invest + wallets InvestWallets[] @relation("beCommunitiesWallets", fields: [walletsIds], references: [id]) + walletsIds String[] @db.ObjectId + + // portfolios + portfolios InvestYou[] @relation("beCommunitiesPortfolio", fields: [portfoliosIds], references: [id]) + portfoliosIds String[] @db.ObjectId + + positions InvestPositions[] @relation("beCommunitiesPositions", fields: [positionsIds], references: [id]) + positionsIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beCommunitiesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beCommunitiesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beCommunitiesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beCommunitiesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beCommunities") +} + +// Event / Calendar +model BeEvents { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + // .ics + start DateTime @db.Date + end DateTime @db.Date + tzid String + tzname String + stamp String + freq String + until DateTime @db.Date + sequence Float + summary ILocaleString + location String + organizer String + attendee String[] + attach String + url String + created DateTime @db.Date + status String + published DateTime @db.Date + + userOwner User? @relation("beEventsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beEventsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beEventsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beEventsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beEvents") +} + +model BeCalendars { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + caldavs String[] + googleCalendars String[] + type ECalType + + syncStrategy ESyncStrategy + + published DateTime @db.Date + + userOwner User? @relation("beCalendarsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beCalendarsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beCalendarsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beCalendarsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beCalendar") +} + +model BeRelations { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beRelationsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beRelationsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beRelationsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beRelationsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beRelations") +} + +// @dpip.cc +// main handle, aliases, creds? api? back auth? +model BeMailboxes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + aliases String[] + + activeSession Session? @relation("beMailboxesActiveSession", fields: [mailActiveToken], references: [id]) + mailActiveToken String? + + caldavs String[] + carddavs String[] + sambas String[] + + emailsSent IEmail[] + emailsReceived IEmail[] + emailsDrafts IEmail[] + + transactionalEmails IEmail[] + importantEmails IEmail[] + doEmails IEmail[] + beEmails IEmail[] + feelEmails IEmail[] + writeEmails IEmail[] + makeEmails IEmail[] + investEmails IEmail[] + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beMailboxesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beMailboxesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beMailboxesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beMailboxesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beMailbox") +} + +// Your dating experience. +// We're soul seeking. +model BeCourtships { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beCourtshipsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beCourtshipsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beCourtshipsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beCourtshipsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beCourtships") +} + +// Messaging +// We're chatting. +// public/private/users1toM/groups1toM +model BeLetters { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beLettersUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beLettersCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beLettersUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beLettersCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beLetters") +} + +// Sales +// We're selling. +model BeDeals { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + sellers BeYou[] @relation("beYouSeller", fields: [sellersIds], references: [id]) + sellersIds String[] @db.ObjectId + + buyers BeYou[] @relation("beYouBuyer", fields: [buyersIds], references: [id]) + buyersIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beDealsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beDealsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beDealsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beDealsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beDeals") +} + +type IEmail { + title String + from String + to String + cc String + bcc String + body String + replyTo String + context String +} + +type ILegalData { + name String + type String + content String + photos String[] +} + +type IRegisteredCompany { + name String + legalName String + legalAddress ILocation + fiscalAddress ILocation + offices ILocation[] + socialAddresses ILocation[] + legalData ILegalData[] + otherLegalData ILegalData[] + socialProfile String // BeCommunities @id +} + +enum EEntityType { + SolePersonal + SolePropertor + LLCSole + LLCPartnership + CorpSubsidiary + CorpSociety + CorpNonProfit + CorpCulturalReligious + Government + Military + International +} + +enum ESyncStrategy { + KEEP_LOCAL + KEEP_CLOUD + KEEP_BOTH +} + +enum ECalType { + CalDav + GoogleCalendar +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__do-phi.prisma b/prisma/private/prisma/schema/__do-phi.prisma new file mode 100644 index 00000000..f7cd909a --- /dev/null +++ b/prisma/private/prisma/schema/__do-phi.prisma @@ -0,0 +1,6 @@ +// to-do: __do-phi.prisma +// ---- @PRIVATE: Do: to yourself? ---- +// +// Your To-Do PHI meta companion. +// Commuting places? Working out as a reward? Eating a treat? +// NA \ No newline at end of file diff --git a/prisma/private/prisma/schema/__do-pii.prisma b/prisma/private/prisma/schema/__do-pii.prisma new file mode 100644 index 00000000..9c7b05bc --- /dev/null +++ b/prisma/private/prisma/schema/__do-pii.prisma @@ -0,0 +1,172 @@ +// to-do: __do-pii.prisma +// ---- @PRIVATE: Do: with yourself? ---- +// +// Your To-Do PII meta companion. +// Your business profile. +model DoYou { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + role EDoRole + + reportsSent DoReports[] @relation("doYouReporters", fields: [reportsSentIds], references: [id]) + reportsSentIds String[] @db.ObjectId + + reportsReceived DoReports[] @relation("doYouReportees", fields: [reportsReceivedIds], references: [id]) + reportsReceivedIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + assignments Dos[] @relation("doDosAssignees", fields: [assignmentsId], references: [id]) + assignmentsId String[] @db.ObjectId + + watchers Dos[] @relation("doDosWatchers", fields: [watchersId], references: [id]) + watchersId String[] @db.ObjectId + + userOwner User? @relation("doYouUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doYouCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doYouUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doYouCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doYou") +} + +model DoSquads { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doSquadsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doSquadsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doSquadsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doSquadsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doSquads") +} + +model DoDirectories { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doDirectoriesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doDirectoriesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doDirectoriesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doDirectoriesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doDirectories") +} + +// Tasks Logs (for Reports) +model DoLogs { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doLogsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doLogsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doLogsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doLogsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doLogs") +} + +// Automated Reporting. +model DoReports { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + reporters DoYou[] @relation("doYouReporters", fields: [reportersId], references: [id]) + reportersId String[] @db.ObjectId + + reportees DoYou[] @relation("doYouReportees", fields: [reportersId], references: [id]) + reporteesId String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doReportsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doReportsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doReportsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doReportsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doReports") +} + +enum EDoRole { + Doer + Lead + Director + Admin +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__feel-phi.prisma b/prisma/private/prisma/schema/__feel-phi.prisma new file mode 100644 index 00000000..3f6c4def --- /dev/null +++ b/prisma/private/prisma/schema/__feel-phi.prisma @@ -0,0 +1,142 @@ +// to-do: __feel-phi.prisma +// ---- @PRIVATE: Feel: u k, g? ---- +// +// Your headspace. +// Fever, CSA, Roar soaring, ADHD, Ketosis, name it. +model FeelSymptoms { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelSymptomsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelSymptomsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelSymptoms") +} + +// Thankful, what the heck-perplexed, half-bewildered. +model FeelLike { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelLikeUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelLikeUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelLike") +} + +// 'Did I dream last nihil'? +model FeelDreams { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelDreamsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelDreamsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelDreams") +} + + +// If I could forgive myself, +model FeelConfessions { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelConfessionsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelConfessionsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelConfessions") +} + +// Feels good? +model FeelMoods { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelMoodsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelMoodsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelMoods") +} + +// Craving that something, or? +model FeelCravings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelCravingsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelCravingsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelCravings") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__feel-pii.prisma b/prisma/private/prisma/schema/__feel-pii.prisma new file mode 100644 index 00000000..ab0a4c22 --- /dev/null +++ b/prisma/private/prisma/schema/__feel-pii.prisma @@ -0,0 +1,26 @@ +// to-do: __feel-phi.prisma +// ---- @PRIVATE: Feel: u k, g? ---- +// +// Your headspace. +// Who do you feel? +model FeelYou { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelYouUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelYouUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelYou") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__invest-fii.prisma b/prisma/private/prisma/schema/__invest-fii.prisma new file mode 100644 index 00000000..9bc425db --- /dev/null +++ b/prisma/private/prisma/schema/__invest-fii.prisma @@ -0,0 +1,264 @@ +// to-do: __invest-fii.prisma +// Welcome to FinCore. @™ +// ---- @PRIVATE: Place it: Private Financial Data. ---- +// +// Your faith. +// Portfolios +model InvestYou { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + wallets InvestWallets[] @relation("investYouWallets", fields: [walletsId], references: [id]) + walletsId String? @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("investYouUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investYouCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investYouUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investYouCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investYou") +} + +// Asset: Positions. + +model InvestPositions { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + fees Float + taxes Float + currency ECurrency + + placedOn DateTime @db.Date + issuedOn DateTime @db.Date + settledOn DateTime @db.Date + publishedOn DateTime @db.Date + + wallet InvestWallets? @relation("investWalletPositions", fields: [walletId], references: [id]) + walletId String? + + relatedQuests DoQuests[] @relation("doQuestPositions", fields: [relatedQuestsIds], references: [id]) + relatedQuestsIds String[] @db.ObjectId + + userOwner User? @relation("investPositionsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investPositionsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investPositionsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investPositionsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investCareEulogy") +} + +// Types of Assets (Portrait of asset: NFT, Promises, Fungible Derivatives: Curse Gossip: DPIP:D, Monetary Responsibility: 1,000.00 US Dollars investment: DPIP:O, etc.FX:EURUSD, FX:GBPUSD, DPIP:D, DPIP:H, KRN:O, DPIP:ETH) +model InvestTypes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + publishedOn DateTime @db.Date + + userOwner User? @relation("investTypesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investTypesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investTypesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investTypesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("careTypes") +} + +// Wallets +model InvestWallets { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + positions InvestPositions[] @relation("investWalletPositions") + positionsIds String[] @db.ObjectId + + userOwner User? @relation("investWalletsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investWalletsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investWalletsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investWalletsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investWallets") +} + +// Expenses. - +model InvestExpenses { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("investExpensesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investExpensesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investExpensesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investExpensesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investExpenses") +} + +// Incomes. - +model InvestIncomes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("investIncomesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investIncomesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investIncomesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investIncomesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investIncomes") +} + +// Bonafides +model InvestContracts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + investmentSignature String + + userAuthorities User[] @relation("investUserAuthorities", fields: [userAuthoritiesIds], references: [id]) + userAuthoritiesIds String[] @db.ObjectId + + communityAuthorities Communities[] @relation("investCommunityAuthorities", fields: [communityAuthoritiesIds], references: [id]) + communityAuthoritiesIds String[] @db.ObjectId + + userSignatures User[] @relation("investUserSignatures", fields: [userSignaturesIds], references: [id]) + userSignaturesIds String[] @db.ObjectId + + communitySignatures Communities[] @relation("investCommunitySignatures", fields: [communitySignaturesIds], references: [id]) + communitySignaturesIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("investContractsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investContractsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investContractsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investContractsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investContracts") +} + +// Raw OCR / Import / Integration Transient Data +model InvestTransactions { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("investTransactionsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investTransactionsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investTransactionsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investTransactionsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investTransactions") +} + diff --git a/prisma/private/prisma/schema/__make-pii.prisma b/prisma/private/prisma/schema/__make-pii.prisma new file mode 100644 index 00000000..6131fdd5 --- /dev/null +++ b/prisma/private/prisma/schema/__make-pii.prisma @@ -0,0 +1,54 @@ +// to-do: __make-pii.prisma +// ---- @PRIVATE: Make: slowly. ---- +// +// Your private things. +model MakeYou { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + role EDoRole + + publishedOn DateTime @db.Date + + recipes MakeRecipes[] @relation("makeYouRecipes", fields: [recipesIds], references: [id]) + recipesIds String[] @db.ObjectId + + inventories MakeInventories[] @relation("makeYouInventories", fields: [inventoriesIds], references: [id]) + inventoriesIds String[] @db.ObjectId + + listings MakeListings[] @relation("makeYouListings", fields: [listingsIds], references: [id]) + listingsIds String[] @db.ObjectId + + procurements MakeProcurements[] @relation("makeYouProcurements", fields: [procurementsIds], references: [id]) + procurementsIds String[] @db.ObjectId + + functions MakeFunctions[] @relation("makeYouFunctions", fields: [functionsIds], references: [id]) + functionsIds String[] @db.ObjectId + + items MakeItems[] @relation("makeYouItems", fields: [itemsIds], references: [id]) + itemsIds String[] @db.ObjectId + + catalogue MakeThings[] @relation("makeYouThings", fields: [catalogueIds], references: [id]) + catalogueIds String[] @db.ObjectId + + spaces MakeSpaces[] @relation("makeYouSpaces", fields: [spacesIds], references: [id]) + spacesIds String[] @db.ObjectId + + userOwner User? @relation("makeYouUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeYouCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeYouUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeYouCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeYou") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__nexus-conf.prisma b/prisma/private/prisma/schema/__nexus-conf.prisma new file mode 100644 index 00000000..5cc1019f --- /dev/null +++ b/prisma/private/prisma/schema/__nexus-conf.prisma @@ -0,0 +1,189 @@ +// to-do: __nexus-conf.prisma +// ---- @PRIVATE: Nexus: Bonds. ---- +// +// Nexus +// Time Nexus +model NexusDays { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("nexusDaysUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("nexusDaysCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("nexusDaysUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("nexusDaysCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} + +model NexusWeeks { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("nexusWeeksUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("nexusWeeksCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("nexusWeeksUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("nexusWeeksCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusWeeks") +} + +model NexusQuarters { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("nexusQuartersUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("nexusQuartersCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("nexusQuartersUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("nexusQuartersCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusQuarters") +} + +model NexusYears { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("nexusYearsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("nexusYearsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("nexusYearsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("nexusYearsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusYears") +} + +model NexusMoments { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("nexusMomentsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("nexusMomentsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("nexusMomentsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("nexusMomentsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusMoments") +} + +// Space Nexus +model NexusSpaces { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + userOwner User? @relation("nexusSpacesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("nexusSpacesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("nexusSpacesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("nexusSpacesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusSpaces") +} + +// Context Nexus +model NexusContexts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + userOwner User? @relation("nexusContextsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("nexusContextsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("nexusContextsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("nexusContextsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusContexts") +} diff --git a/prisma/private/prisma/schema/__write-phi.prisma b/prisma/private/prisma/schema/__write-phi.prisma new file mode 100644 index 00000000..7b64b98f --- /dev/null +++ b/prisma/private/prisma/schema/__write-phi.prisma @@ -0,0 +1,32 @@ +// to-do: __write-phi.prisma +// ---- @PRIVATE: Write: Doctors, Exams, Docs. ---- +// +// Your Medspace. +// Your medical records. +model WriteMedDocs { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeMedDocsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeMedDocsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeMedDocsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeMedDocsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeMedDocs") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/__write-pii.prisma b/prisma/private/prisma/schema/__write-pii.prisma new file mode 100644 index 00000000..0a7a3dfb --- /dev/null +++ b/prisma/private/prisma/schema/__write-pii.prisma @@ -0,0 +1,60 @@ +// to-do: __write.prisma +// ---- @PRIVATE: Write: it's official ---- +// +// Your legal documents. +// We're invoicing. +model WriteYou { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeYouUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeYouCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeYouUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeYouCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeYou") +} + +model WriteDocs { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeDocsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeDocsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeDocsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeDocsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeDocs") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/_be.prisma b/prisma/private/prisma/schema/_be.prisma new file mode 100644 index 00000000..4940f513 --- /dev/null +++ b/prisma/private/prisma/schema/_be.prisma @@ -0,0 +1,167 @@ +// to-do: _be.prisma +// ---- @INT: Be: I am. ---- +// +// Be +// Your personal social profile. +model BeSocial { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + beAt ILocation + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + makeSocialProfiles MakeSocial[] @relation("beSocialMakeSocialProfiles", fields: [makeSocialProfilesIds], references: [id]) + makeSocialProfilesIds String[] @db.ObjectId + + doSocialProfiles DoSocial[] @relation("beSocialDoSocialProfiles", fields: [doSocialProfilesIds], references: [id]) + doSocialProfilesIds String[] @db.ObjectId + + investSocialProfiles MakeSocial[] @relation("beSocialInvestSocialProfiles", fields: [investSocialProfilesIds], references: [id]) + investSocialProfilesIds String[] @db.ObjectId + + feelSocialProfiles FeelSocial[] @relation("beSocialFeelSocialProfiles", fields: [feelSocialProfilesIds], references: [id]) + feelSocialProfilesIds String[] @db.ObjectId + + writeSocialProfiles WriteSocial[] @relation("beSocialWriteSocialProfiles", fields: [writeSocialProfilesIds], references: [id]) + writeSocialProfilesIds String[] @db.ObjectId + + userOwner User? @relation("beSocialUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beSocialCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beSocialUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beSocialCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beSocial") +} + +// Your org social profile. +model BeSocialCommunities { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + beAt ILocation + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beSocialCommunitiesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beSocialCommunitiesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beSocialCommunitiesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beSocialCommunitiesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beSocialCommunities") +} + +// Interests +// public/private/reusable/fixed-options/clean up eventually +model BeTopics { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beTopicsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beTopicsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beTopicsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beTopicsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beTopics") +} + +// Fantasy +// public/private/re-usable/game/pip/goal +model BeCharacters { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beCharactersUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beCharactersCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beCharactersUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beCharactersCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beCharacters") +} + +// Awards +model BeAwards { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beAwardsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("beAwardsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("beAwardsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("beAwardsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beAwards") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/_do.prisma b/prisma/private/prisma/schema/_do.prisma new file mode 100644 index 00000000..dc290228 --- /dev/null +++ b/prisma/private/prisma/schema/_do.prisma @@ -0,0 +1,368 @@ +// to-do: _do.prisma +// ---- @INT: Do: just do it. ---- +// +// Do +// Tasks + +// ::Ensure shared Bees:: +// Tasks +model DoSocial { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + role EDoRole + + reportsSent DoReports[] @relation("doSocialReporters", fields: [reportsSentIds], references: [id]) + reportsSentIds String[] @db.ObjectId + + reportsReceived DoReports[] @relation("doSocialReportees", fields: [reportsReceivedIds], references: [id]) + reportsReceivedIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + beSocialProfiles BeSocial[] @relation("makeSocialBeSocialProfiles", fields: [beSocialProfilesIds], references: [id]) + beSocialProfilesIds String[] @db.ObjectId + + makeSocialProfiles MakeSocial[] @relation("makeSocialMakeSocialProfiles", fields: [makeSocialProfilesIds], references: [id]) + makeSocialProfilesIds String[] @db.ObjectId + + investSocialProfiles MakeSocial[] @relation("makeSocialInvestSocialProfiles", fields: [investSocialProfilesIds], references: [id]) + investSocialProfilesIds String[] @db.ObjectId + + feelSocialProfiles FeelSocial[] @relation("makeSocialFeelSocialProfiles", fields: [feelSocialProfilesIds], references: [id]) + feelSocialProfilesIds String[] @db.ObjectId + + writeSocialProfiles WriteSocial[] @relation("makeSocialWriteSocialProfiles", fields: [writeSocialProfilesIds], references: [id]) + writeSocialProfilesIds String[] @db.ObjectId + + assignments Dos[] @relation("doDosAssignees", fields: [assignmentsId], references: [id]) + assignmentsId String[] @db.ObjectId + + watchers Dos[] @relation("doDosWatchers", fields: [watchersId], references: [id]) + watchersId String[] @db.ObjectId + + userOwner User? @relation("doSocialUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doSocialCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doSocialUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doSocialCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doSocial") +} + +model Dos { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + assignees DoYou[] @relation("doDosAssignees", fields: [assigneesId], references: [id]) + assigneesId String[] @db.ObjectId + + watchers DoYou[] @relation("doDosWatchers", fields: [watchersId], references: [id]) + watchersId String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doDosUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doDosCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doDosUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doDosCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("dos") +} + +// Task Templates +model DoTypes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doTypesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doTypesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doTypesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doTypesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doTypes") +} + +// Nexus +// +// Priority Parsers: Context: Writing code and buying potatoes? +model DoContexts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doContextsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doContextsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doContextsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doContextsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doContexts") +} + +// Daily Routines +// Priority Parsers: Routines: Time of the day, day of the week. +model DoRoutines { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doRoutinesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doRoutinesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doRoutinesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doRoutinesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doRoutines") +} + +// Priority Parsers: Difficulty: Take it easy? Full power? +model DoDifficulties { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doDifficultiesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doDifficultiesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doDifficultiesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doDifficultiesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doDifficulties") +} + +// Priority Parsers: Modes: Homeless, Married, With Children? +model DoModes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doModesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doModesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doModesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doModesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doModes") +} + +// Projects +// Priority Parsers: Quests, Summer Camp, Client Payment Date. +model DoQuests { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + ticker String + + positions InvestPositions[] @relation("doQuestPositions", fields: [positionsIds], references: [id]) + positionsIds String[] @db.ObjectId + + createdOn DateTime @db.Date + updatedOn DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doQuestsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doQuestsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doQuestsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doQuestsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doQuests") +} + +// Projects Templates +model DoQuestTypes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doQuestTypesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doQuestTypesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doQuestTypesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doQuestTypesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doQuestTypes") +} + +// Products +// Priority Parsers: Aspects, Income Sources, Feedback. +model DoProducts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doProductsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doProductsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doProductsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doProductsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doProducts") +} + +// Scoreboards: Employee of the month, Duke of the street. +model DoScores { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("doScoresUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("doScoresCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("doScoresUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("doScoresCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doScores") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/_feel.prisma b/prisma/private/prisma/schema/_feel.prisma new file mode 100644 index 00000000..2dc44397 --- /dev/null +++ b/prisma/private/prisma/schema/_feel.prisma @@ -0,0 +1,41 @@ +// to-do: _feel.prisma +// ---- @INT: Feel: u k, g? ---- +// +// Feel +// Public Moods +model FeelSocial { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + beSocialProfiles BeSocial[] @relation("feelSocialBeSocialProfiles", fields: [beSocialProfilesIds], references: [id]) + beSocialProfilesIds String[] @db.ObjectId + + doSocialProfiles DoSocial[] @relation("feelSocialDoSocialProfiles", fields: [doSocialProfilesIds], references: [id]) + doSocialProfilesIds String[] @db.ObjectId + + makeSocialProfiles MakeSocial[] @relation("feelSocialMakeSocialProfiles", fields: [makeSocialProfilesIds], references: [id]) + makeSocialProfilesIds String[] @db.ObjectId + + investSocialProfiles InvestSocial[] @relation("feelSocialInvestSocialProfiles", fields: [investSocialProfilesIds], references: [id]) + investSocialProfilesIds String[] @db.ObjectId + + writeSocialProfiles WriteSocial[] @relation("feelSocialWriteSocialProfiles", fields: [writeSocialProfilesIds], references: [id]) + writeSocialProfilesIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("feelSocialUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("feelSocialUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + @@map("feelSocial") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/_invest.prisma b/prisma/private/prisma/schema/_invest.prisma new file mode 100644 index 00000000..47db2c64 --- /dev/null +++ b/prisma/private/prisma/schema/_invest.prisma @@ -0,0 +1,79 @@ +// to-do: _invest.prisma +// ---- @INT: Invest: share it. ---- +// +// Invest +// KRN Asset: Karuna: Compliments, Witnessing. + +// DPIP Asset: Pip: Criticism, Feedback. - +model InvestSocial { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + wallets InvestWallets[] @relation("investSocialWallets", fields: [walletsId], references: [id]) + walletsId String? @db.ObjectId + + beSocialProfiles BeSocial[] @relation("investSocialBeSocialProfiles", fields: [beSocialProfilesIds], references: [id]) + beSocialProfilesIds String[] @db.ObjectId + + doSocialProfiles DoSocial[] @relation("investSocialDoSocialProfiles", fields: [doSocialProfilesIds], references: [id]) + doSocialProfilesIds String[] @db.ObjectId + + makeSocialProfiles MakeSocial[] @relation("investSocialMakeSocialProfiles", fields: [makeSocialProfilesIds], references: [id]) + makeSocialProfilesIds String[] @db.ObjectId + + feelSocialProfiles FeelSocial[] @relation("investSocialFeelSocialProfiles", fields: [feelSocialProfilesIds], references: [id]) + feelSocialProfilesIds String[] @db.ObjectId + + writeSocialProfiles WriteSocial[] @relation("investSocialWriteSocialProfiles", fields: [writeSocialProfilesIds], references: [id]) + writeSocialProfilesIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("investYouUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investYouCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investYouUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investYouCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investYou") +} + +model InvestSharedPositions { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("investSharedPositionsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investSharedPositionsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investSharedPositionsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investSharedPositionsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investSharedPositions") +} diff --git a/prisma/private/prisma/schema/_make.prisma b/prisma/private/prisma/schema/_make.prisma new file mode 100644 index 00000000..002c51a8 --- /dev/null +++ b/prisma/private/prisma/schema/_make.prisma @@ -0,0 +1,308 @@ +// to-do: _make.prisma +// ---- @INT: Make: a formula. ---- +// +// Make +// Recipes +model MakeSocial { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouSocial", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + beSocialProfiles BeSocial[] @relation("makeSocialBeSocialProfiles", fields: [beSocialProfilesIds], references: [id]) + beSocialProfilesIds String[] @db.ObjectId + + doSocialProfiles DoSocial[] @relation("makeSocialDoSocialProfiles", fields: [doSocialProfilesIds], references: [id]) + doSocialProfilesIds String[] @db.ObjectId + + investSocialProfiles MakeSocial[] @relation("makeSocialInvestSocialProfiles", fields: [investSocialProfilesIds], references: [id]) + investSocialProfilesIds String[] @db.ObjectId + + feelSocialProfiles FeelSocial[] @relation("makeSocialFeelSocialProfiles", fields: [feelSocialProfilesIds], references: [id]) + feelSocialProfilesIds String[] @db.ObjectId + + writeSocialProfiles WriteSocial[] @relation("makeSocialWriteSocialProfiles", fields: [writeSocialProfilesIds], references: [id]) + writeSocialProfilesIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeSocialUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeSocialCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeSocialUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeSocialCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeSocial") +} + +model MakeRecipes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouRecipes", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeRecipesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeRecipesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeRecipesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeRecipesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeRecipes") +} + +// Geography or ambients +model MakeSpaces { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouSpaces", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeSpacesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeSpacesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeSpacesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeSpacesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeSpaces") +} + +// Groceries or shopping lists +model MakeProcurements { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + makers MakeYou[] @relation("makeYouProcurements", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + contacts BeContacts[] @relation("beContactsProcurements", fields: [contactsIds], references: [id]) + contactsIds String[] @db.ObjectId + + userOwner User? @relation("makeProcurementsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeProcurementsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeProcurementsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeProcurementsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeProcurements") +} + +// Catalogues +model MakeThings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouThings", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeThingsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeThingsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeThingsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeThingsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeThings") +} + +// Models +model MakeInventories { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouInventories", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeInventoriesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeInventoriesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeInventoriesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeInventoriesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeInventories") +} + +// Stashes: Gifts +model MakeItems { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouItems", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeItemsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeItemsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeItemsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeItemsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeItems") +} + +// Listing (Things, Occasions, Events). Time or space. +model MakeListings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouListings", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeListingsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeListingsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeListingsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeListingsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeListings") +} + +// Things purpose +model MakeFunctions { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + makers MakeYou[] @relation("makeYouFunctions", fields: [makersIds], references: [id]) + makersIds String[] @db.ObjectId + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("makeFunctionsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("makeFunctionsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("makeFunctionsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("makeFunctionsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeFunctions") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/_view.prisma b/prisma/private/prisma/schema/_view.prisma new file mode 100644 index 00000000..171bcd3a --- /dev/null +++ b/prisma/private/prisma/schema/_view.prisma @@ -0,0 +1,145 @@ +// to-do: _view.prisma +// ---- @INT: View: UX. ---- +// +// View +// Dashboards View +model ViewDashboards { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("viewDashboardsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("viewDashboardsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("viewDashboardsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("viewDashboardsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("viewDashboards") +} + +// Chart view + +model ViewCharts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("viewChartsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("viewChartsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("viewChartsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("viewChartsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("viewCharts") +} + +// Time view + +model ViewTime { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("viewTimeUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("viewTimeCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("viewTimeUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("viewTimeCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("viewTime") +} + +// Space View +model ViewSpaces { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("viewSpacesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("viewSpacesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("viewSpacesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("viewSpacesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("viewSpaces") +} + +// Listings View +model ViewListings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("viewListingsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("viewListingsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("viewListingsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("viewListingsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("viewListings") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/_write.prisma b/prisma/private/prisma/schema/_write.prisma new file mode 100644 index 00000000..ceb7d529 --- /dev/null +++ b/prisma/private/prisma/schema/_write.prisma @@ -0,0 +1,274 @@ +// to-do: _do.prisma +// ---- @INT: Write: just do it. ---- +// +// Wernicke, "vem cá véi" -- the hdgehg.mod@regroup +// Organize +model WriteSocial { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + beSocialProfiles BeSocial[] @relation("writeSocialBeSocialProfiles", fields: [beSocialProfilesIds], references: [id]) + beSocialProfilesIds String[] @db.ObjectId + + doSocialProfiles DoSocial[] @relation("writeSocialDoSocialProfiles", fields: [doSocialProfilesIds], references: [id]) + doSocialProfilesIds String[] @db.ObjectId + + investSocialProfiles MakeSocial[] @relation("writeSocialInvestSocialProfiles", fields: [investSocialProfilesIds], references: [id]) + investSocialProfilesIds String[] @db.ObjectId + + feelSocialProfiles FeelSocial[] @relation("writeSocialFeelSocialProfiles", fields: [feelSocialProfilesIds], references: [id]) + feelSocialProfilesIds String[] @db.ObjectId + + makeSocialProfiles MakeSocial[] @relation("writeSocialMakeSocialProfiles", fields: [makeSocialProfilesIds], references: [id]) + makeSocialProfilesIds String[] @db.ObjectId + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeSocialUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeSocialCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeSocialUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeSocialCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeSocial") +} + +model WriteIdeas { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeIdeasUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeIdeasCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeIdeasUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeIdeasCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeIdeas") +} + +model WriteLearnings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeLearningsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeLearningsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeLearningsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeLearningsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeLearnings") +} + +// newsfeed +model WriteWits { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeWitsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeWitsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeWitsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeWitsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeWits") +} + +model WriteCogitos { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeCogitosUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeCogitosCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeCogitosUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeCogitosCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeCogitos") +} + +// Broca, "se ligue" -- the foxylady.mod@goget.it +model WriteHopes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeHopesUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeHopesCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeHopesUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeHopesCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeHopes") +} + +model WriteThreads { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeThreadsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeThreadsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeThreadsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeThreadsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeThreads") +} + +// newsfeed backlink from wit comments +model WriteOpinions { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writeOpinionsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writeOpinionsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writeOpinionsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writeOpinionsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writeOpinions") +} + +model WritePublications { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("writePublicationsUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("writePublicationsCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("writePublicationsUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("writePublicationsCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("writePublications") +} \ No newline at end of file diff --git a/prisma/private/prisma/schema/schema.prisma b/prisma/private/prisma/schema/schema.prisma new file mode 100644 index 00000000..c38438af --- /dev/null +++ b/prisma/private/prisma/schema/schema.prisma @@ -0,0 +1,11 @@ +generator client { + provider = "prisma-client-js" + output = "../../../../node_modules/@dreampipcom/db-private/prisma-client" + previewFeatures = ["prismaSchemaFolder"] +} + +datasource db { + provider = "mongodb" + url = env("PRISMA_PRIVATE_URI") + directUrl = env("MONGODB_PRIVATE_URI") +} \ No newline at end of file diff --git a/prisma/public/prisma/schema/__nexus-conf.prisma b/prisma/public/prisma/schema/__nexus-conf.prisma new file mode 100644 index 00000000..d362e7d3 --- /dev/null +++ b/prisma/public/prisma/schema/__nexus-conf.prisma @@ -0,0 +1,195 @@ +// to-do: __nexus.prisma +// ---- @PRIVATE: Nexus: Bonds. ---- +// +// Nexus +// Time Nexus +model PublicNexusDays { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} + +model PublicNexusWeeks { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} + +model PublicNexusQuarters { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} + +model PublicNexusYears { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} + +model PublicNexusMoments { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} + +// Space Nexus +model PublicNexusSpaces { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} + +// Context Nexus +model PublicNexusContexts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("nexusDays") +} \ No newline at end of file diff --git a/prisma/public/prisma/schema/_be.prisma b/prisma/public/prisma/schema/_be.prisma new file mode 100644 index 00000000..b009aa06 --- /dev/null +++ b/prisma/public/prisma/schema/_be.prisma @@ -0,0 +1,206 @@ +// to-do: _be.prisma +// ---- @PUBLIC Be: who are we? ---- +// +// Be +// Public Visible Profiles +model BePublic { + // admin + // communities + emoji String + title ILocaleString + body ILocaleString + slug String + + profilePictures String[] + coverPictures String[] + albumsPictures String[] + wallPictures String[] + + profileVideos String[] + coverVideos String[] + albumsVideos String[] + wallVideos String[] + + badges String[] + + // space + publicSpace ILocation + + // contact + socialProfiles ISocial[] + websites String[] + + // hydrate decorations: + // sharedInventories + // sharedListings + inventories MakeInventories[] @relation("beHumanInventories", fields: [inventoriesIds], references: [id]) + inventoriesIds String[] @db.ObjectId + + listings MakeListings[] @relation("beHumanListings", fields: [listingsIds], references: [id]) + listingsIds String[] @db.ObjectId + + procurements MakeProcurements[] @relation("beHumanProcurements", fields: [procurementsIds], references: [id]) + procurementsIds String[] @db.ObjectId + + quests DoQuests[] @relation("beHumanQuests", fields: [questsIds], references: [id]) + questsIds String[] @db.ObjectId + + // @PRIVATE + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + description ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beHumansUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("beHumansUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + userManager User? @relation("beHumansUserManager", fields: [userManagerId], references: [id]) + userManagerId String? @db.ObjectId + + communityOwner Communities? @relation("beHumansCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + communityCreator Communities? @relation("beHumansCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + communityManager Communities? @relation("beHumansCommunityManager", fields: [communityManagerId], references: [id]) + communityManagerId String? @db.ObjectId + + @@map("bePublic") +} + +model PublicBeCommunities { + // admin + // communities + emoji String + title ILocaleString + body ILocaleString + slug String + + profilePictures String[] + coverPictures String[] + albumsPictures String[] + wallPictures String[] + + profileVideos String[] + coverVideos String[] + albumsVideos String[] + wallVideos String[] + + badges String[] + + // space + publicSpace ILocation + + // contact + socialProfiles ISocial[] + websites String[] + + // hydrate decorations: + // sharedInventories + // sharedListings + inventories MakeInventories[] @relation("beHumanInventories", fields: [inventoriesIds], references: [id]) + inventoriesIds String[] @db.ObjectId + + listings MakeListings[] @relation("beHumanListings", fields: [listingsIds], references: [id]) + listingsIds String[] @db.ObjectId + + procurements MakeProcurements[] @relation("beHumanProcurements", fields: [procurementsIds], references: [id]) + procurementsIds String[] @db.ObjectId + + quests DoQuests[] @relation("beHumanQuests", fields: [questsIds], references: [id]) + questsIds String[] @db.ObjectId + + // @PRIVATE + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + description ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("beHumansUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + userCreator User? @relation("beHumansUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + userManager User? @relation("beHumansUserManager", fields: [userManagerId], references: [id]) + userManagerId String? @db.ObjectId + + communityOwner Communities? @relation("beHumansCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + communityCreator Communities? @relation("beHumansCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + communityManager Communities? @relation("beHumansCommunityManager", fields: [communityManagerId], references: [id]) + communityManagerId String? @db.ObjectId + + @@map("bePublic") +} + +// Public Interest Topics +model PublicBeTopics { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("beTopics") +} + +// Awards +model PublicBeAwards { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("publicBeAwards") +} \ No newline at end of file diff --git a/prisma/public/prisma/schema/_do.prisma b/prisma/public/prisma/schema/_do.prisma new file mode 100644 index 00000000..8b439478 --- /dev/null +++ b/prisma/public/prisma/schema/_do.prisma @@ -0,0 +1,124 @@ +// to-do: _do.prisma +// ---- @PUBLIC: Do: let's do it. ---- +// +// Actions +// Public Projects +model PublicDoQuests { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + ticker String + + investments Investments[] @relation("ticker") + investmentsIds String[] @db.ObjectId + + createdOn DateTime @db.Date + updatedOn DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("projectUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("projectCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("projectUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("projectCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doQuests") +} + +// Public Project Types +model PublicDoQuestsTypes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doQuestsTypes") +} + +// Public Products +model PublicDoProducts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doProducts") +} + +// Public Scores +model PublicDoScores { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("doScores") +} \ No newline at end of file diff --git a/prisma/public/prisma/schema/_feel.prisma b/prisma/public/prisma/schema/_feel.prisma new file mode 100644 index 00000000..bf41b527 --- /dev/null +++ b/prisma/public/prisma/schema/_feel.prisma @@ -0,0 +1,32 @@ +// to-do: _feel.prisma +// ---- @PUBLIC: Feel: u k, g? ---- +// +// Feel +// Public Moods +model PublicFeelMoods { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("moodUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("moodCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("moodUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("moodCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("feelMoods") +} \ No newline at end of file diff --git a/prisma/public/prisma/schema/_invest.prisma b/prisma/public/prisma/schema/_invest.prisma new file mode 100644 index 00000000..53410eda --- /dev/null +++ b/prisma/public/prisma/schema/_invest.prisma @@ -0,0 +1,61 @@ +// to-do: _invest.prisma +// ---- @INT: Invest: place it. ---- +// +// Invest +// Portfolios and Public Perfomance Data +model PublicInvestPortfolios { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("thoughtUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("thoughtCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("thoughtUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("thoughtCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("investCareEulogy") +} + +// Types of Assets (Portrait of asset: NFT, Promises, Fungible Derivatives: Curse Gossip: DPIP:D, Monetary Responsibility: 1,000.00 US Dollars investment: DPIP:O, etc.FX:EURUSD, FX:GBPUSD, DPIP:D, DPIP:H, KRN:O, DPIP:ETH) +model PublicInvestTypes { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("thoughtUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("thoughtCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("thoughtUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("thoughtCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("careTypes") +} \ No newline at end of file diff --git a/prisma/public/prisma/schema/_make.prisma b/prisma/public/prisma/schema/_make.prisma new file mode 100644 index 00000000..bd44533e --- /dev/null +++ b/prisma/public/prisma/schema/_make.prisma @@ -0,0 +1,90 @@ +// to-do: _make.prisma +// ---- @PUBLIC Make: Marketplace ---- +// +// Public Listings +// Geography or ambients +model PublicMakeSpaces { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeSpaces") +} + +// Groceries or shopping lists +model PublicMakeProcurements { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeProcurements") +} + +// Listings +model PublicMakeListings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + loggedOn DateTime @db.Date + loggedFor DateTime[] @db.Date + publishedOn DateTime @db.Date + + userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("makeListings") +} \ No newline at end of file diff --git a/prisma/public/prisma/schema/_view.prisma b/prisma/public/prisma/schema/_view.prisma new file mode 100644 index 00000000..d33a3b78 --- /dev/null +++ b/prisma/public/prisma/schema/_view.prisma @@ -0,0 +1,115 @@ +// to-do: _view.prisma +// ---- @PUBLIC: View: UX. ---- +// +// View +// Time View +model PublicViewTime { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("publicViewTime") +} + +// Space View +model PublicViewSpaces { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("publicViewSpaces") +} + +// Chart View +model PublicViewCharts { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("publicViewCharts") +} + +// Listing View +model PublicViewListings { + id String @id @default(auto()) @map("_id") @db.ObjectId + name ILocaleString + slug String + description ILocaleString + + title ILocaleString + body ILocaleString + + purchaseValue Float + settledValue Float + + userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) + userOwnerId String? @db.ObjectId + + communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) + communityOwnerId String? @db.ObjectId + + userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) + userCreatorId String? @db.ObjectId + + communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) + communityCreatorId String? @db.ObjectId + + @@map("publicViewListings") +} diff --git a/prisma/schema-public.prisma b/prisma/public/prisma/schema/schema.prisma similarity index 97% rename from prisma/schema-public.prisma rename to prisma/public/prisma/schema/schema.prisma index bb49eadd..16c68b22 100644 --- a/prisma/schema-public.prisma +++ b/prisma/public/prisma/schema/schema.prisma @@ -1,6 +1,7 @@ generator client { provider = "prisma-client-js" - output = "../node_modules/@dreampipcom/db-public/prisma-client" + output = "../../../../node_modules/@dreampipcom/db-public/prisma-client" + previewFeatures = ["prismaSchemaFolder"] } datasource db { diff --git a/prisma/schema-private.prisma b/prisma/schema-private.prisma deleted file mode 100644 index 2f57c959..00000000 --- a/prisma/schema-private.prisma +++ /dev/null @@ -1,945 +0,0 @@ -generator client { - provider = "prisma-client-js" - output = "../node_modules/@dreampipcom/db-private/prisma-client" -} - -datasource db { - provider = "mongodb" - url = env("PRISMA_PRIVATE_URI") - directUrl = env("MONGODB_PRIVATE_URI") -} - -model Account { - id String @id @default(auto()) @map("_id") @db.ObjectId - userId String @db.ObjectId - type String - provider String - providerAccountId String @map("provider_account_id") - refresh_token String? @db.String - access_token String? @db.String - expires_at Int? - token_type String? - scope String? - id_token String? @db.String - session_state String? - - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - - user User @relation(fields: [userId], references: [id], onDelete: Cascade) - - @@unique([provider, providerAccountId]) - @@map("account") -} - -model Session { - id String @id @default(auto()) @map("_id") @db.ObjectId - sessionToken String @unique - userId String @db.ObjectId - expires DateTime - user User @relation(fields: [userId], references: [id], onDelete: Cascade) - - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - @@map("session") -} - -model VerificationToken { - id String @id @default(auto()) @map("_id") @db.ObjectId - identifier String - token String - expires DateTime - - @@unique([identifier, token]) - @@map("verificationToken") -} - -// Optional for WebAuthn support -model Authenticator { - credentialID String @id @map("_id") - userId String @db.ObjectId - providerAccountId String - credentialPublicKey String - counter Int - credentialDeviceType String - credentialBackedUp Boolean - transports String? - - user User @relation(fields: [userId], references: [id], onDelete: Cascade) - - @@unique([userId, credentialID]) - @@map("authenticator") -} - -model User { - id String @id @default(auto()) @map("_id") @db.ObjectId - name String? - email String? @unique - emailVerified DateTime? - image String? - accounts Account[] - sessions Session[] - // Optional for WebAuthn support - Authenticator Authenticator[] - - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - - firstName String? - lastName String? - - birthday DateTime? @db.Date - communities Communities[] @relation(fields: [communitiesIds], references: [id]) - communitiesIds String[] @db.ObjectId - location ILocation? - - preferences Taxonomies[] @relation("preferences", fields: [preferencesIds], references: [id]) - preferencesIds String[] @db.ObjectId - - services Services[] @relation("userServices", fields: [servicesIds], references: [id]) - servicesIds String[] @db.ObjectId - - abilities Abilities[] @relation("userAbilities", fields: [abilitiesIds], references: [id]) - abilitiesIds String[] @db.ObjectId - - // settings String - favorites Listings[] @relation("favorites", fields: [favoritesIds], references: [id]) - favoritesIds String[] @db.ObjectId - - favoritesStrings String[] - - messagesSent Messages[] @relation("userMessagesSent") - messagesSentIds String[] @db.ObjectId - - messagesReceived Messages[] @relation("userMessagesReceived", fields: [messagesReceivedIds], references: [id]) - messagesReceivedIds String[] @db.ObjectId - - roles Roles[] @relation("roles", fields: [rolesIds], references: [id]) - rolesIds String[] @db.ObjectId - - // user generated content - - ownedCommunities Communities[] @relation("ownedCommunities") - createdCommunities Communities[] @relation("createdCommunities") - - ownedListings Listings[] @relation("listingUserOwner") - createdListings Listings[] @relation("listingUserCreator") - - ownedTaxonomies Taxonomies[] @relation("taxonomyUserOwner") - createdTaxonomies Taxonomies[] @relation("taxonomyUserCreator") - - ownedMessages Messages[] @relation("messageUserOwner") - createdMessages Messages[] @relation("messageUserCreator") - - ownedMoods Moods[] @relation("moodUserOwner") - createdMoods Moods[] @relation("moodUserCreator") - - ownedActions Actions[] @relation("actionUserOwner") - createdActions Actions[] @relation("actionUserCreator") - - ownedThoughts Thoughts[] @relation("thoughtUserOwner") - createdThoughts Thoughts[] @relation("thoughtUserCreator") - - ownedProjects Projects[] @relation("projectUserOwner") - createdProjects Projects[] @relation("projectUserCreator") - - ownedInvestments Investments[] @relation("investmentUserOwner") - createdInvestments Investments[] @relation("investmentUserCreator") - - ownedServices Services[] @relation("serviceUserOwner") - createdServices Services[] @relation("serviceUserCreator") - - ownedFeatures Features[] @relation("featureUserOwner") - createdFeatures Features[] @relation("featureUserCreator") - - ownedAbilities Abilities[] @relation("abilityUserOwner") - createdAbilities Abilities[] @relation("abilityUserCreator") - - @@map("user") -} - -model Communities { - id String @id @default(auto()) @map("_id") @db.ObjectId - users User[] @relation(fields: [usersIds], references: [id]) - usersIds String[] @db.ObjectId - status ECommunitiestatus - - name String - description String - urls String[] - image String? - - favorites Listings[] @relation("communityFavorites", fields: [favoritesIds], references: [id]) - favoritesIds String[] @db.ObjectId - - preferences Taxonomies[] @relation("communityPreferences", fields: [preferencesIds], references: [id]) - preferencesIds String[] @db.ObjectId - - ownedListings Listings[] @relation("listingCommunityOwner") - createdListings Listings[] @relation("listingCommunityCreator") - - ownedTaxonomies Taxonomies[] @relation("taxonomyCommunityOwner") - createdTaxonomies Taxonomies[] @relation("taxonomyCommunityCreator") - - ownedMessages Messages[] @relation("messageCommunityOwner") - createdMessages Messages[] @relation("messageCommunityCreator") - - services Services[] @relation("communityServices", fields: [servicesIds], references: [id]) - servicesIds String[] @db.ObjectId - - abilities Abilities[] @relation("communityAbilities", fields: [abilitiesIds], references: [id]) - abilitiesIds String[] @db.ObjectId - - ownedServices Services[] @relation("serviceCommunityOwner") - createdServices Services[] @relation("serviceCommunityCreator") - - ownedFeatures Features[] @relation("featureCommunityOwner") - createdFeatures Features[] @relation("featureCommunityCreator") - - ownedAbilities Abilities[] @relation("abilityCommunityOwner") - createdAbilities Abilities[] @relation("abilityCommunityCreator") - - ownedMoods Moods[] @relation("moodCommunityOwner") - createdMoods Moods[] @relation("moodCommunityCreator") - - ownedActions Actions[] @relation("actionCommunityOwner") - createdActions Actions[] @relation("actionCommunityCreator") - - ownedThoughts Thoughts[] @relation("thoughtCommunityOwner") - createdThoughts Thoughts[] @relation("thoughtCommunityCreator") - - ownedProjects Projects[] @relation("projectCommunityOwner") - createdProjects Projects[] @relation("projectCommunityCreator") - - ownedInvestments Investments[] @relation("investmentCommunityOwner") - createdInvestments Investments[] @relation("investmentCommunityCreator") - - roles Roles[] @relation("communityRoles", fields: [rolesIds], references: [id]) - rolesIds String[] @db.ObjectId - - messagesSent Messages[] @relation("communityMessagesSent") - messagesSentIds String[] @db.ObjectId - - messagesReceived Messages[] @relation("communityMessagesReceived", fields: [messagesReceivedIds], references: [id]) - messagesReceivedIds String[] @db.ObjectId - - userOwner User? @relation("ownedCommunities", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - userCreator User? @relation("createdCommunities", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - @@map("communities") -} - -model Listings { - // static - id String @id @default(auto()) @map("_id") @db.ObjectId - title ILocaleString //model title - description ILocaleString //model description - status EListingStatus - location ILocation - scheduledFor DateTime? @db.Date - value Float? - images String[] - - taxonomies Taxonomies[] @relation("listingTaxonomies", fields: [taxonomiesIds], references: [id]) - taxonomiesIds String[] @db.ObjectId - - // foreign - // from audiences to communities and users who favorited - messages Messages[] @relation("listingMessagesReceived", fields: [messagesIds], references: [id]) - messagesIds String[] @db.ObjectId - - favorited User[] @relation("favorites", fields: [favoritedIds], references: [id]) - favoritedIds String[] @db.ObjectId - - communityFavorited Communities[] @relation("communityFavorites", fields: [communityFavoritedIds], references: [id]) - communityFavoritedIds String[] @db.ObjectId - - communityOwner Communities? @relation("listingCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userOwner User? @relation("listingUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - userCreator User? @relation("listingUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("listingCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("listings") -} - -model Taxonomies { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - description ILocaleString - - status ETaxonomyStatus - type ETaxonomyType - nature ETaxonomyNature - - targetUser User[] @relation("preferences", fields: [usersIds], references: [id]) - usersIds String[] @db.ObjectId - - targetCommunities Communities[] @relation("communityPreferences", fields: [communitiesIds], references: [id]) - communitiesIds String[] @db.ObjectId - - listings Listings[] @relation("listingTaxonomies", fields: [listingIds], references: [id]) - listingIds String[] @db.ObjectId - - userOwner User? @relation("taxonomyUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("taxonomyCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("taxonomyUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("taxonomyCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("taxonomies") -} - -model Messages { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - description ILocaleString - - type EMessageType - status EMessageStatus - nature EMessageNature - channels EMessageChannel[] - - title ILocaleString - body ILocaleString - - queuedOn DateTime @db.Date - scheduledOn DateTime @db.Date - sentOn DateTime @db.Date - - fromUser User? @relation("userMessagesSent", fields: [fromUserId], references: [id]) - fromUserId String? @db.ObjectId - - fromCommunity Communities? @relation("communityMessagesSent", fields: [fromCommunityId], references: [id]) - fromCommunityId String? @db.ObjectId - - toUser User[] @relation("userMessagesReceived", fields: [toUserIds], references: [id]) - toUserIds String[] @db.ObjectId - - toCommunities Communities[] @relation("communityMessagesReceived", fields: [toCommunitiesIds], references: [id]) - toCommunitiesIds String[] @db.ObjectId - - toListings Listings[] @relation("listingMessagesReceived", fields: [toCommunitiesIds], references: [id]) - toListingsIds String[] @db.ObjectId - - userOwner User? @relation("messageUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("messageCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("messageUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("messageCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("messages") -} - -model Roles { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String? - status ERoleStatus - type ERoleType - nature ERoleNature - - abilities Abilities[] @relation("roleAbilities", fields: [abilitiesIds], references: [id]) - abilitiesIds String[] @db.ObjectId - - users User[] @relation("roles", fields: [usersIds], references: [id]) - usersIds String[] @db.ObjectId - communities Communities[] @relation("communityRoles", fields: [communitiesIds], references: [id]) - communitiesIds String[] @db.ObjectId - - @@map("roles") -} - -model Services { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String? - status EServiceStatus - type EServiceType - nature EServiceNature - - features Features[] @relation("serviceFeatures", fields: [featuresIds], references: [id]) - featuresIds String[] @db.ObjectId - - users User[] @relation("userServices", fields: [usersIds], references: [id]) - usersIds String[] @db.ObjectId - communities Communities[] @relation("communityServices", fields: [communitiesIds], references: [id]) - communitiesIds String[] @db.ObjectId - - userOwner User? @relation("serviceUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("serviceCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("serviceUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("serviceCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("services") -} - -model Features { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String? - status EFeatureStatus - type EFeatureType - nature EFeatureNature - - services Services[] @relation("serviceFeatures", fields: [servicesIds], references: [id]) - servicesIds String[] @db.ObjectId - - abilities Abilities[] @relation("featureAbilities", fields: [abilitiesIds], references: [id]) - abilitiesIds String[] @db.ObjectId - - userOwner User? @relation("featureUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("featureCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("featureUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("featureCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("features") -} - -model Abilities { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String? - status EAbilityStatus - type EAbilityType - nature EAbilityNature - target String? - action String? - - features Features[] @relation("featureAbilities", fields: [featuresIds], references: [id]) - featuresIds String[] @db.ObjectId - - roles Roles[] @relation("roleAbilities", fields: [rolesIds], references: [id]) - rolesIds String[] @db.ObjectId - - users User[] @relation("userAbilities", fields: [usersIds], references: [id]) - usersIds String[] @db.ObjectId - communities Communities[] @relation("communityAbilities", fields: [communitiesIds], references: [id]) - communitiesIds String[] @db.ObjectId - - userOwner User? @relation("abilityUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("abilityCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("abilityUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("abilityCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("abilities") -} - -model Moods { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String - description ILocaleString - - title ILocaleString - body ILocaleString - - loggedOn DateTime @db.Date - loggedFor DateTime[] @db.Date - publishedOn DateTime @db.Date - - userOwner User? @relation("moodUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("moodCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("moodUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("moodCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("moods") -} - -model Actions { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String - description ILocaleString - - title ILocaleString - body ILocaleString - - loggedOn DateTime @db.Date - loggedFor DateTime[] @db.Date - publishedOn DateTime @db.Date - - userOwner User? @relation("actionUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("actionCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("actionUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("actionCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("actions") -} - -model Thoughts { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String - description ILocaleString - - title ILocaleString - body ILocaleString - - loggedOn DateTime @db.Date - loggedFor DateTime[] @db.Date - publishedOn DateTime @db.Date - - userOwner User? @relation("thoughtUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("thoughtCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("thoughtUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("thoughtCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("thoughts") -} - -model Projects { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String - description ILocaleString - - title ILocaleString - body ILocaleString - - ticker String - - investments Investments[] @relation("ticker") - investmentsIds String[] @db.ObjectId - - createdOn DateTime @db.Date - updatedOn DateTime[] @db.Date - publishedOn DateTime @db.Date - - userOwner User? @relation("projectUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("projectCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("projectUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("projectCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("projects") -} - -model Investments { - id String @id @default(auto()) @map("_id") @db.ObjectId - name ILocaleString - slug String - description ILocaleString - - title ILocaleString - body ILocaleString - - placedOn DateTime @db.Date - issuedOn DateTime @db.Date - settledOn DateTime @db.Date - - ticker Projects? @relation("ticker", fields: [tickerId], references: [id]) - tickerId String? @db.ObjectId - - purchaseValue Float - settledValue Float - - userOwner User? @relation("investmentUserOwner", fields: [userOwnerId], references: [id]) - userOwnerId String? @db.ObjectId - - communityOwner Communities? @relation("investmentCommunityOwner", fields: [communityOwnerId], references: [id]) - communityOwnerId String? @db.ObjectId - - userCreator User? @relation("investmentUserCreator", fields: [userCreatorId], references: [id]) - userCreatorId String? @db.ObjectId - - communityCreator Communities? @relation("investmentCommunityCreator", fields: [communityCreatorId], references: [id]) - communityCreatorId String? @db.ObjectId - - @@map("investments") -} - - -// globals - -type ILocaleString { - es String? - ca String? - ga String? - eu String? - en String? - cy String? - mt String? - is String? - it String? - pt String? - de String? - fr String? - pl String? - et String? - cz String? - sv String? - da String? - nl String? - nb String? - nn String? - ro String? - sr String? - sl String? - lv String? - lt String? - hr String? - el String? - hu String? - bg String? - bs String? - sq String? - ja String? - ru String? - ar String? - he String? - zh String? - gl String? - sw String? - hi String? - ms String? - bn String? - pa String? - tr String? - fi String? - uk String? -} - - -enum ERating { - ZERO - ONE - TWO - THREE - FOUR - FIVE - SIX - SEVEN - EIGHT - NINE - TEN -} - -enum EImpression { - POSITIVE - NEGATIVE - NEUTRAL -} - -enum ECurrency { - EUR - NOK - SEK - CHF - GBP - CZK - PLZ - USD -} - -enum ECadence { - MINUTE - HALF_HOUR - HOURLY - FOUR_HOURS - EIGHT_HOURS - TWELVE_HOURS - DAILY - TWO_DAYS - THREE_DAYS - WORK_DAYS - WEEKENDS - WEEKLY - BI_WEEKLY - MONTHLY - BI_MONTHLY - QUARTERLY - BI_QUARTERLY - SEMESTER - YEARLY - TWO_YEARS - THREE_YEARS - FIVE_YEARS -} - -// taxonomies - -enum ETaxonomyStatus { - ACTIVE - PENDING - INACTIVE - DELETED -} - -enum ETaxonomyType { - TAG - ANOTHER_TAG -} - -enum ETaxonomyNature { - SEGMENTED - PUBLIC -} - - -// offers - -enum EOfferStatus { - ACTIVE - PENDING - INACTIVE - DELETED -} - -type ITaxesAndFees { - taxes Float - fees Float - shipping Float -} - -// communities - -enum ECommunitiestatus { - ACTIVE - PENDING - INACTIVE - DELETED -} - - -// listing - -enum EListingStatus { - ACTIVE - PENDING - INACTIVE - DELETED -} - - -// messages - -enum EMessageType { - ANNOUNCEMENT - CAMPAIGN - REVIEW - CHAT - SUPPORT -} - -enum EMessageStatus { - SCHEDULED - PENDING - DELIVERED - VIEWED -} - -enum EMessageNature { - PRIVATE - SEMI_PRIVATE - PUBLIC -} - -enum EMessageChannel { - PUSH_NOTIFICATION - EMAIL - CHAT - SUPPORT_PANEL - Community_CHAT -} - - -// roles -enum ERoleStatus { - ACTIVE - PENDING - INACTIVE - DELETED -} - -enum ERoleNature { - INTERNAL - PUBLIC -} - -enum ERoleType { - ADMIN - USER - Community - CUSTOMER - PROVIDER - INTERNAL_DEV - INTERNAL_MKT - INTERNAL_SALES - INTERNAL_HR - INTERNAL_LEAD - INTERNAL_OPS -} - -enum ERoleAbilites { - SUDO - VIEW_PRIVATE - EDIT_PRIVATE - DELETE_PRIVATE - CREATE_PRIVATE - CREATE_MESSAGE - CREATE_BROADCAST - CREATE_LISTING - MANAGE_TAXONOMIES - MANAGE_Community - MANAGE_USER - MANAGE_REVIEWS - MANAGE_ROLES -} - -// services -enum EServiceStatus { - ACTIVE - INACTIVE - DELINQUENT -} - -enum EServiceNature { - PRIVATE - PUBLIC - COMMON -} - -enum EServiceType { - COMMUNITY - FINANCIAL - CONSUMER - MERCHANT -} - -// features -enum EFeatureStatus { - ACTIVE - INACTIVE - NIGHTLY -} - -enum EFeatureNature { - EXPERIMENTAL - LTS - LEGACY -} - -enum EFeatureType { - INTERFACE - INTEGRATION - EXPERIENCE - PERFORMANCE - SECURITY -} - -// abilities -enum EAbilityStatus { - ACTIVE - INACTIVE - SUSPENDED -} - -enum EAbilityNature { - ROLE_BASED - BILLING_BASED - PRIVILEGE - COMMON - TEMPORARY -} - -enum EAbilityType { - C - R - U - D -} - -// users - -type IPosix { - lat Float - lng Float - radius Float -} - -type IAddress { - street String - additional String - number String - city String - province String - country String - zipCode String - phone String -} - -type ILocation { - geo IPosix? - address IAddress? - name String -}