from odoo import api, fields, models


class XenoOrrConfig(models.Model):
    """Single-row settings record (same shape as a res.config.settings
    singleton, but a plain model since nothing else in this codebase uses
    the res.config.settings wizard pattern) -- just the fuel rate for now.
    get_rate() lazily creates the one row so callers never have to check
    for "no config yet" themselves."""

    _name = "xeno.orr.config"
    _description = "Outside Request & Reimbursement Settings"

    fuel_rate_per_km = fields.Float(
        string="Fuel Reimbursement Rate (per km)", required=True, default=4.0,
        help="Flat rate used to auto-calculate Fuel reimbursement amounts: "
             "recorded trip distance (km) x this rate. Applies to both "
             "Personal Car and Personal Bike trips -- Company Car trips "
             "aren't eligible for Fuel reimbursement at all.")

    @api.model
    def get_rate(self):
        config = self.search([], limit=1)
        if not config:
            config = self.create({})
        return config.fuel_rate_per_km
