C# .NET ASP WEB API. Нексогональная архитектура. Как сделать эти классы? В папке Domain/Models? Вот код: [-- Таблица пользователей
CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    registration_date TIMESTAMP DEFAULT NOW(),
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    phone VARCHAR(20)
);

-- Таблица статусов запчастей
CREATE TABLE part_status (
    status_id SERIAL PRIMARY KEY,
    status_name VARCHAR(50) UNIQUE NOT NULL
);

-- Вставка возможных статусов
INSERT INTO part_status (status_name) VALUES
('доступна'),
('обменяна'),
('продана'),
('запрос на обмен');

-- Таблица типов двигателей
CREATE TABLE engine_types (
    engine_type_id SERIAL PRIMARY KEY,
    engine_type_name VARCHAR(50) UNIQUE NOT NULL
);

-- Вставка типов двигателей
INSERT INTO engine_types (engine_type_name) VALUES
('Бензиновый'),
('Дизельный'),
('Гибридный'),
('Электрический');

-- Таблица трансмиссий
CREATE TABLE transmissions (
    transmission_id SERIAL PRIMARY KEY,
    transmission_type_name VARCHAR(50) UNIQUE NOT NULL
);

-- Вставка типов трансмиссий
INSERT INTO transmissions (transmission_type_name) VALUES
('Механическая'),
('Автоматическая'),
('Вариатор'),
('Роботизированная');

-- Таблица автомобилей пользователя
CREATE TABLE cars (
    car_id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    make VARCHAR(50) NOT NULL, -- Марка автомобиля
    model VARCHAR(50) NOT NULL, -- Модель автомобиля
    year SMALLINT, -- Год выпуска
    engine_type_id INTEGER REFERENCES engine_types(engine_type_id),
    transmission_id INTEGER REFERENCES transmissions(transmission_id)
);

-- Таблица запчастей
CREATE TABLE parts (
    part_id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    car_id INTEGER REFERENCES cars(car_id) ON DELETE SET NULL,
    part_name VARCHAR(100) NOT NULL,
    description TEXT,
    condition VARCHAR(50),
    availability_status INTEGER REFERENCES part_status(status_id), -- Использование числового статуса
    posting_date TIMESTAMP DEFAULT NOW()
);

-- Таблица услуг
CREATE TABLE services (
    service_id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    service_name VARCHAR(100) NOT NULL,
    description TEXT,
    offer_or_request VARCHAR(10) CHECK (offer_or_request IN ('offer', 'request')), -- 'offer' для предложений, 'request' для запросов
    status VARCHAR(20),
    posting_date TIMESTAMP DEFAULT NOW()
);

-- Таблица диалогов для общения между пользователями
CREATE TABLE conversations (
    conversation_id SERIAL PRIMARY KEY
);

-- Таблица сообщений
CREATE TABLE messages (
    message_id SERIAL PRIMARY KEY,
    conversation_id INTEGER REFERENCES conversations(conversation_id) ON DELETE CASCADE,
    sender_user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    message_text TEXT NOT NULL,
    timestamp TIMESTAMP DEFAULT NOW()
);

-- Таблица участников диалога
CREATE TABLE conversation_participants (
    conversation_id INTEGER REFERENCES conversations(conversation_id) ON DELETE CASCADE,
    user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    PRIMARY KEY (conversation_id, user_id)
);

-- Таблица отчетов (фото и видео)
CREATE TABLE reports (
    report_id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    title VARCHAR(200) NOT NULL,
    description TEXT,
    content_url TEXT NOT NULL, -- Ссылка на файл фото или видео
    timestamp TIMESTAMP DEFAULT NOW()
);

-- Таблица комментариев к отчетам
CREATE TABLE comments (
    comment_id SERIAL PRIMARY KEY,
    report_id INTEGER REFERENCES reports(report_id) ON DELETE CASCADE,
    user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    comment_text TEXT NOT NULL,
    timestamp TIMESTAMP DEFAULT NOW()
);

-- Таблица уведомлений
CREATE TABLE notifications (
    notification_id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE,
    notification_type VARCHAR(50), -- Например, 'interest_in_part', 'interest_in_service'
    reference_id INTEGER, -- Идентификатор связанного элемента (part_id, service_id и т.д.)
    created_at TIMESTAMP DEFAULT NOW(),
    read_status BOOLEAN DEFAULT FALSE
);
]