Advertisement
Guest User

Untitled

a guest
Feb 11th, 2023
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import {DataTypes, Model} from 'https://deno.land/x/[email protected]/mod.ts'
  2.  
  3.  
  4.  
  5. export class Post extends Model {
  6.   static table = 'posts'
  7.   static timestamps = true
  8.  
  9.   static fields = {
  10.     id: {primaryKey: true, autoIncrement: true},
  11.     board: {type: DataTypes.STRING, length: 5},
  12.     num: {type: DataTypes.INTEGER, unique: true},
  13.     number: {type: DataTypes.INTEGER},
  14.     comment: DataTypes.TEXT,
  15.     email: DataTypes.STRING,
  16.     timestamp: DataTypes.TIMESTAMP,
  17.     thread_num: DataTypes.INTEGER,
  18.     name: DataTypes.STRING,
  19.     files: DataTypes.INTEGER,
  20.     op: DataTypes.BOOLEAN,
  21.     views: DataTypes.INTEGER,
  22.   }
  23. }
  24.  
  25. export class Thread extends Model {
  26.   static table = 'threads'
  27.   static timestamps = true
  28.  
  29.   static fields = {
  30.     id: {primaryKey: true, autoIncrement: true},
  31.     board: {type: DataTypes.STRING, length: 5},
  32.     thread_num: {type: DataTypes.INTEGER, unique: true},
  33.   }
  34. }
  35.  
  36. export class ThreadMetrics extends Model {
  37.   static table = 'thread_metrics'
  38.   static timestamps = true
  39.  
  40.   static fields = {
  41.     id: {primaryKey: true, autoIncrement: true},
  42.     board: {type: DataTypes.STRING, length: 5},
  43.     thread_num: DataTypes.INTEGER,
  44.     posts_count: DataTypes.INTEGER,
  45.     unique_posters: DataTypes.INTEGER,
  46.     views: DataTypes.INTEGER,
  47.     files_count: DataTypes.INTEGER,
  48.   }
  49. }
  50.  
  51. export type TBoardPageInfo = {
  52.   board: {
  53.       id: string
  54.   },
  55.   threads: {
  56.       files_count: number,
  57.       thread_num: number,
  58.       posts: {
  59.           board: string,
  60.           comment: string,
  61.           date: string,
  62.           email: string,
  63.           files: TFile[],
  64.           name: string,
  65.           num: number,
  66.           subject: string,
  67.           views: number,
  68.       }[]
  69.   }[]
  70. }
  71.  
  72. export type TThreadInfo = {
  73.   board: {
  74.       id: string
  75.   },
  76.   current_thread: number,
  77.   max_num: number,
  78.   posts_count: number,
  79.   threads: [
  80.       {
  81.           posts: [
  82.               {
  83.                   comment: string,
  84.                   date: string,
  85.                   email: string,
  86.                   files: TFile[],
  87.                   name: string,
  88.                   // Глобальный номер поста
  89.                   num: number,
  90.                   // Номер поста в треде
  91.                   number: 1,
  92.                   op: 0,
  93.                   subject: string,
  94.                   timestamp: number,
  95.                   views: number
  96.               }
  97.           ]
  98.       }
  99.   ],
  100.   title: string,
  101.   unique_posters: number
  102. }
  103.  
  104. export type TFile = {
  105.   type: 1,
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement