Table of Contents

Namespace GastroSky.Models

Classes

BlacklistedEmailDomain

Blacklisted email domains will go in here. Known spammer domains and scam/phishing/porn/whatever the fuck we don't wanna have in our DB should go in here.

Booster

Boosters table. Boosters SKU format: GSKY-BST-{Booster name}-{Duration of booster}H-V{Version number}

Company

Companies table.

CompanySubscription

Company-to-Subscription junction table.

ConfigurationEntry

GastroSky configuration table.

Contact
ContactCall
Country
Error

Error structure to return in response bodies.

Errors

Possible errors to be returned from the various backend endpoints.

InterestedUser

Interested users

InvalidatedAuthToken

Invalidated auth tokens should be dumped into this table upon logout/exhaustion/once known to be compromised (uh oh...).

KeyValuePairCacheEntry
Location
MailAttachment

An email attachment's details.

MailTemplate

Mail template to be used for email traffic in the GastroSky backend.

News

News article.

Order

An order placed via the Gastrosky website.

OrderFulfillmentResult
OrderedProduct

Junction table that assigns the ordered Products to an Order.

PepperBrand

Pepper brand. Yummy.

Post

A post. Main domain model class for this project. Everything revolves around this.

PostBooster
PostImage

Image upload DB entry in the context of a Post.

PostPremiumUpgrade

Junction-table for premium upgrades.

PremiumUpgrade

Premium upgrade Premium SKU format: GSKY-PRP-{DurationDays}D-V{Version number}

Product

A product sold by Gastrosky Sagl. Could be a Booster, could be a PremiumUpgrade, but NO BUNDLES! Only single, atomic entries for every product sold! Can be accumulated in an Order.

Region
SentEmail

Email that was sent out by the GastroSky backend.

Slug

DB-wide unique identifier of a resource.

SmtpCredentials

SMTP credentials to use for sending mail (e.g. via Mailgun or something similar).

Subscription

This is the subscription that users can pay for when they are regular customers with increasing as well as recurring needs. Subscription SKU format: GSKY-SUB-{Number of Posts Available}P-{Duration of subscription}M-{Custom user or ALL}-{Company slug or ALL}-V{Version number}

TranslatableField
Translation

Translations table. Translation SKU format: GSKY-TRNS-{From language}-{To language}-{MIN or WORD}-V{Version number}

TranslationRequest

A translation request for post description

Translator

A translator

User

A GastroSky user account.

UserAgent

User-Agent HTTP header DB entry.

UserClaim

A user auth claim. This is used for authorization purposes (permission handling).

UserCompany
UserFavorite
UserLoginAttempt

Logged User login attempt. Yes: we record and keep track of every login attempt. Failed and successful ones.

UserPostInteraction

A User's Post interaction. Can be created on other people's behalf by Post authors.

Check the wiki for more information on business logic, rules and current schema of the GastroSky Sagl.
UserSubscription

User-to-Subscription junction table.

Structs

ClaimType

JWT auth claim type ID (e.g. https://api.gastrosky.ch/identity/claims/resources/users).

Enums

AccessLevel

Unix-like access type. Can be bitwise-orred: e.g. read+write can be obtained by combining AccessLevel.Read | AccessLevel.Write

BoosterName
BusinessLegalForm

Possible business legal forms.

CompanyRole

Possible company roles.

ContactStatus
ImageSize
ItemType

The type of item offered in a Post.

Language

Language supported by GastroSky.

MailTemplateOrderByColumn

Which column a MailTemplate related query should be ordered by.

PaymentMethod
PostAnnualRevenueBracket

Possible Annual Revenue Bracket.

PostCategory

Possible post category.

SortingOrder

Sorting order preference. Used in query filters.

SubscriptionType
UserPostInteractionStatus

Status that a UserPostInteraction can be in.