# -*- coding: utf-8 -*- # Copyright 2026 Nexa Systems Inc. # License OPL-1 (Odoo Proprietary License v1.0) # Part of the Fusion Plating product family. from odoo import fields, models class FpCgpAccessLog(models.Model): """Physical access log for CGP-controlled areas. Every entry and exit from a controlled area must be logged so a timeline can be reconstructed in the event of an incident. In a typical shop the entries are created automatically by an access control system; this model is the lightweight hand-entry fallback. """ _name = 'fusion.plating.cgp.access.log' _description = 'Fusion Plating — CGP Access Log Entry' _order = 'access_datetime desc, id desc' employee_id = fields.Many2one( 'hr.employee', string='Employee', ) access_datetime = fields.Datetime( string='Date / Time', required=True, default=lambda self: fields.Datetime.now(), ) access_point = fields.Char( string='Access Point', required=True, help='Door, gate, or zone name.', ) entry_exit = fields.Selection( [ ('entry', 'Entry'), ('exit', 'Exit'), ], string='Direction', default='entry', required=True, ) access_type = fields.Selection( [ ('employee', 'Employee'), ('visitor_escorted', 'Visitor (Escorted)'), ('visitor_unescorted', 'Visitor (Unescorted)'), ], string='Access Type', default='employee', required=True, ) related_visitor_id = fields.Many2one( 'fusion.plating.cgp.visitor', string='Related Visitor', ) company_id = fields.Many2one( 'res.company', string='Company', default=lambda self: self.env.company, ) notes = fields.Char(string='Notes')