Schema: ai_sam_members
Schema: ai_sam_members
Technical Truth - Models, API endpoints, and data structures
Module Overview
| Attribute | Value |
|---|---|
| Technical Name | ai_sam_members |
| Version | 18.0.2.0.0 |
| Total Models | 2 (1 new, 1 inherited) |
| Total Controllers | 1 (signup) |
| API Endpoints | Portal routes |
Models
sam.member (Primary Model)
Purpose: Member management with tiered pricing and usage tracking
| Field | Type | Required | Description |
|---|---|---|---|
active |
Boolean | No | Archive flag (default: True) |
partner_id |
Many2one | Yes | Delegated res.partner (cascade delete) |
user_id |
Many2one | Yes | Login account for member |
member_type |
Selection | Yes | free / founding / paid |
monthly_price |
Float | No | Computed based on tier (stored) |
founding_number |
Integer | No | 1-100 for founding members (unique) |
is_founding_member |
Boolean | No | Computed: founding_number is 1-100 |
subscription_status |
Selection | Yes | active / trial / cancelled / expired |
subscription_start |
Date | No | Start date |
subscription_end |
Date | No | End date |
total_sessions |
Integer | No | Chat session count |
total_messages |
Integer | No | Message count |
last_activity |
Datetime | No | Last activity timestamp |
graph_nodes_count |
Integer | No | Knowledge nodes count |
funnel_stage |
Selection | Yes | visitor / lead / free / paid / saas |
Inherits: mail.thread, mail.activity.mixin
Inherits Delegation: res.partner (via partner_id)
Key Methods:
| Method | Purpose | Returns |
|--------|---------|---------|
| _compute_is_founding() | Check if founding_number is 1-100 | Updates is_founding_member |
| _compute_monthly_price() | Calculate price based on tier | Updates monthly_price |
| get_portal_url() | Get appropriate portal URL | "/my/sam" or "/my/elearning" |
SQL Constraints:
- founding_number_unique - founding_number must be unique
- founding_number_range - founding_number must be 1-100 or NULL
Python Constraints:
- _check_unique_user - One user can only have one member record
res.partner (Inherited)
Purpose: Extend partner with membership fields (if any)
Note: Primary membership data is in sam.member via inherits delegation
Member Types and Pricing
| Type | Condition | Monthly Price |
|---|---|---|
free |
Default | $0 |
founding |
founding_number 1-100 | $27 |
paid |
Standard paid | $97 |
Funnel Stages
| Stage | Description |
|---|---|
visitor |
Anonymous website visitor |
lead |
Captured lead (email collected) |
free |
Free member signup complete |
paid |
Paying member |
saas |
Full SaaS customer |
Subscription Status
| Status | Description |
|---|---|
active |
Active subscription |
trial |
In trial period |
cancelled |
User cancelled |
expired |
Subscription expired |
Data Relationships Diagram
┌─────────────────────────┐
│ sam.member │
│ │
│ - member_type │
│ - founding_number │
│ - subscription_status │
│ - partner_id ──────────┼─────┐ (_inherits delegation)
│ - user_id ─────────────┼──────► res.users
└─────────────────────────┘ │
▼
┌─────────────────────┐
│ res.partner │
│ │
│ - name │
│ - email │
│ - phone │
│ - (all partner │
│ fields) │
└─────────────────────┘
Security Rules
| Model | Group | Read | Write | Create | Delete |
|---|---|---|---|---|---|
sam.member |
group_sam_free_member | Yes | No | No | No |
sam.member |
group_sam_paid_member | Yes | Yes | No | No |
sam.member |
group_sam_admin | Yes | Yes | Yes | Yes |
Custom Security Groups (security_groups.xml):
- group_sam_free_member - Free tier members (read-only access)
- group_sam_paid_member - Paid/Founding members (can edit own record)
- group_sam_admin - Full administrative access
Email Templates
Welcome Email (mail_templates.xml)
- Template Name: SAM AI Welcome
- Model: sam.member
- Trigger: Automated action on create
Automated Actions
Welcome Email Automation
- Trigger: On create of sam.member
- Action: Send welcome email template
- Condition: member_type in ('free', 'founding', 'paid')
Portal Routes
| Route | Access | Description |
|---|---|---|
/my/sam |
Paid/Founding | Full SAM portal |
/my/elearning |
Free | eLearning only portal |
Database Tables
| Table Name | Model | Purpose |
|---|---|---|
sam_member |
sam.member |
Member records |
Change History
| Date | Change | By |
|---|---|---|
| 2025-01-26 | Initial schema documentation | CTO Module Documentor |
| 2025-01-26 | Enhanced to 10/10: Corrected security groups | CTO Module Docs Reviewer |