0.0.2Updated an hour ago
// deno-lint-ignore-file no-namespace

import { UserSchema, type UserType } from "./schemas/users.ts";
import { UserQuestionsSchema, type UserQuestionType} from "./schemas/user_questions.ts";
import { UserFriendsSchema, type UserFriendType } from "./schemas/user_friends.ts";
import { UserFriendRequestsSchema, type UserFriendRequestType } from "./schemas/user_friend_requests.ts";
import { UserSubscriptionsSchema, type UserSubscriptionType } from "./schemas/user_subscriptions.ts";
import { UserSuspensionsSchema, type UserSuspensionType } from "./schemas/user_suspensions.ts";

import { CountrySchema, type CountryType } from "./schemas/countries.ts";
import { CountryQuestionSchema, type CountryQuestionType } from "./schemas/country_questions.ts";
import { CountryLanguageSchema, type CountryLanguageType } from "./schemas/country_languages.ts";

import { QuestionSchema, type QuestionType } from "./schemas/questions.ts";
import { QuestionTranslationSchema, type QuestionTranslationType } from "./schemas/question_translation.ts";

import { AnswerSchema, type AnswerType } from "./schemas/answers.ts";
import { LanguageSchema, type LanguageType } from "./schemas/languages.ts";

export const TopTrivia = {
  schemas: {
    User: UserSchema,
    UserQuestions: UserQuestionsSchema,
    UserFriends: UserFriendsSchema,
    UserFriendRequests: UserFriendRequestsSchema,
    UserSubscriptions: UserSubscriptionsSchema,
    UserSuspensions: UserSuspensionsSchema,

    Country: CountrySchema,
    CountryQuestion: CountryQuestionSchema,
    CountryLanguage: CountryLanguageSchema,

    Question: QuestionSchema,
    QuestionTranslation: QuestionTranslationSchema,
    Answer: AnswerSchema,
    Language: LanguageSchema,
  }
} as const;

export namespace TopTrivia {
  export type User = UserType;
  export namespace User {
    export type Question = UserQuestionType;
    export type Friend = UserFriendType;
    export type FriendRequest = UserFriendRequestType;
    export type Subscription = UserSubscriptionType;
    export type Suspension = UserSuspensionType;
  }

  export type Country = CountryType;
  export namespace Country {
    export type Question = CountryQuestionType;
    export type Language = CountryLanguageType;
  }

  export type Question = QuestionType;
  export namespace Question {
    export type Translation = QuestionTranslationType;
  }

  export type Answer = AnswerType;
  export type Language = LanguageType;
}