39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
import { mailModels } from "@mail/../tests/mail_test_helpers";
|
|
import { Command, fields } from "@web/../tests/web_test_helpers";
|
|
|
|
export class DiscussChannel extends mailModels.DiscussChannel {
|
|
ai_agent_id = fields.Many2one({
|
|
relation: "ai.agent",
|
|
});
|
|
|
|
_channel_basic_info_fields() {
|
|
return [...super._channel_basic_info_fields(), "ai_agent_id"];
|
|
}
|
|
|
|
/** @param {import("@mail/../tests/mock_server/mock_models/res_partner").ResPartner} partner */
|
|
_get_or_create_ai_chat(partner) {
|
|
const channels = this.env["discuss.channel"].search([
|
|
["is_member", "=", true],
|
|
["channel_type", "=", "ai_chat"],
|
|
["channel_member_ids", "any", ["partner_id", "=", partner.id]],
|
|
]);
|
|
|
|
if (!channels[0]) {
|
|
return this.env["discuss.channel"].create({
|
|
name: partner.name,
|
|
channel_type: "ai_chat",
|
|
channel_member_ids: [
|
|
Command.create({
|
|
partner_id: this.env.user.partner_id.id,
|
|
}),
|
|
Command.create({
|
|
partner_id: partner.id,
|
|
}),
|
|
],
|
|
});
|
|
}
|
|
|
|
return channels[0];
|
|
}
|
|
}
|