26 lines
884 B
Python
26 lines
884 B
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
|
|
from odoo import models, fields
|
|
|
|
|
|
class FusionClockAIUsage(models.Model):
|
|
_name = 'fusion.clock.ai.usage'
|
|
_description = 'AI Usage Tracking'
|
|
_order = 'date desc'
|
|
|
|
date = fields.Date(required=True, index=True)
|
|
feature = fields.Char(required=True, index=True)
|
|
model_name = fields.Char(required=True)
|
|
prompt_tokens = fields.Integer()
|
|
completion_tokens = fields.Integer()
|
|
total_tokens = fields.Integer(compute='_compute_total')
|
|
estimated_cost_usd = fields.Float(digits=(10, 6))
|
|
request_count = fields.Integer(default=1)
|
|
company_id = fields.Many2one('res.company', default=lambda self: self.env.company)
|
|
|
|
def _compute_total(self):
|
|
for rec in self:
|
|
rec.total_tokens = rec.prompt_tokens + rec.completion_tokens
|