План разработки удобного развертываемого месседжера с блэкджоком и шлюхами

БД сервер PostgtresSQL поднятый на Docker:

docker-compose.yml

services:
  msgdb:
    image: postgres
    restart: always
    shm_size: 128mb
    environment:
      POSTGRES_PASSWORD: postgr
      POSTGRES_USER: pass
    volumes:
      - ./postgres-data:/var/lib/postgresql/data

    ports:
      - 5435:5432

  msgadminer:
    image: adminer
    restart: always
    ports:
      - 8056:8080

  msgpgadmin:
    image: dpage/pgadmin4
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: redabyq.space@gmail.com
      PGADMIN_DEFAULT_PASSWORD: pass
      PGADMIN_LISTEN_PORT: 8081
    ports:
      - 8055:8081

volumes:
  volume_postgres:

Структура БД messager (выполнить запросами)

Users

id email login name surname hashpassword emailcode confirmed forgotpasscode isbanned status token code_expires_at
int
primarykey
varchar varchar varchar varchar byte int bool int bool varchar varchar datetime

Avatars

id userid imagemax imagemin date
int
primarykey
int
foreignkey (users)
varchar varchar date

DirectChats

id user1id user2id createdate
int
primarykey
int
foreignkey (users)
int
foreignkey (users)
date

Groups

id createdate isPrivate name description ownerid
int
primarykey
date bool varchar varchar int
foreignkey (users)

Groupsusers

userid groupid date
int
foreignkey (users)
int
foreignkey (groups)
date

Messages

id userid isedited date time content chatid groupid reply_to
int
primarykey
int
foreignkey (users)
bool date time varchar int
foreignkey (DirectChats)
int
foreignkey (Groups)
int
foreignkey (Messages)

statFiles

id filename type path date time msgid
int
primarykey
varchar int
foreignkey (types)
varchar date time

FileTypes

id type
int
primarykey
varchar

FileTypes заполнение

id type
1 image
2 video
3 music
4 voice
5 other

API:

Регистрация

Авторизация

Feature