Enum
Lase が提供する PHP Enum の一覧です。すべて CodebaseJp\Lase\Enums 名前空間に属します。
拡張メソッド
各 Enum には、ケースに対応する値を返すメソッドが定義されています。
label()
UI に表示するための日本語ラベルを返します。ほぼすべての Enum が実装しています。
UserStatus::ACTIVE->label(); // '利用中'
PlanType::TRIAL->label(); // 'トライアルプラン'group()
ActivityLogType のみが実装しています。ログをグループ分けするための文字列('admin' / 'tenant' / 'common')を返します。管理画面でのフィルタリングに使用されます。
ActivityLogType::ADMIN_LOGIN->group(); // 'admin'
ActivityLogType::TENANT_LOGIN->group(); // 'tenant'
ActivityLogType::COMMON_LOGIN->group(); // 'common'toSql()
AnalyticsAggregation のみが実装しています。集計方法に対応する SQL 関数文字列を生成します。
AnalyticsAggregation::SUM->toSql('amount'); // 'SUM(amount)'
AnalyticsAggregation::COUNT->toSql('id'); // 'COUNT(id)'アプリ側での拡張
PHP の enum は継承できないため、Lase の Enum を直接継承して拡張することはできません。ActivityLogType や TenantPermission のように、アプリ側で独自の値を追加する必要がある Enum は、以下の手順で拡張します。
- アプリ側に新しい Enum を定義する(Lase の Enum とは別の型)
- Lase が提供するケースの値を、アプリ側の Enum にそのまま含める
- 同じ拡張メソッドをアプリ側の Enum に実装する
権限チェックやログ記録は文字列値の比較で行うため、型(クラス)が異なっていても値が一致すれば正しく動作します。
// アプリ側の enum(例)
enum MyActivityLogType: string
{
// Lase のケースをそのまま含める
case ADMIN_LOGIN = 'ADMIN_LOGIN';
case TENANT_LOGIN = 'TENANT_LOGIN';
case COMMON_LOGIN = 'COMMON_LOGIN';
// ... 他の Lase ケース ...
// アプリ独自のケース
case MY_CUSTOM_ACTION = 'MY_CUSTOM_ACTION';
public function group(): string
{
return match ($this) {
self::COMMON_LOGIN => 'common',
self::TENANT_LOGIN => 'tenant',
default => 'admin',
};
}
public function label(): string
{
return match ($this) {
self::MY_CUSTOM_ACTION => 'カスタム操作',
// ...
};
}
}Enum 一覧
ユーザー・認証
UserStatus
テナントユーザーのステータス。User モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
PENDING | PENDING | 仮登録 |
ACTIVE | ACTIVE | 利用中 |
SUSPENDED | SUSPENDED | 利用停止中 |
WITHDRAWN | WITHDRAWN | 退会済 |
AdminUserStatus
管理者ユーザーのステータス。AdminUser モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
ACTIVE | ACTIVE | 利用中 |
SUSPENDED | SUSPENDED | 利用停止中 |
AdminStatus
管理者(Admin)エンティティのステータス。
| ケース | 値 | ラベル |
|---|---|---|
INTERIM | INTERIM | 仮登録 |
ACTIVE | ACTIVE | 利用中 |
INACTIVE | INACTIVE | 利用停止中 |
ARCHIVED | ARCHIVED | アーカイブ済 |
AdminType
管理者ユーザーの種別。
| ケース | 値 | ラベル |
|---|---|---|
SUPERUSER | SUPERUSER | スーパーユーザー |
NORMAL | NORMAL | 通常 |
TenantUserStatus
テナントへの所属ステータス。TenantUser モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
ACTIVE | ACTIVE | 利用中 |
SUSPENDED | SUSPENDED | 利用停止中 |
招待
AdminUserInvitationStatus
管理者ユーザーの招待ステータス。AdminUserInvitation モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
PENDING | PENDING | 招待中 |
ACCEPTED | ACCEPTED | 参加済 |
DECLINED | DECLINED | 辞退済 |
REVOKED | REVOKED | 招待取消済 |
TenantUserInvitationStatus
テナントユーザーの招待ステータス。TenantUserInvitation モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
PENDING | PENDING | 招待中 |
ACCEPTED | ACCEPTED | 参加済 |
DECLINED | DECLINED | 辞退済 |
REVOKED | REVOKED | 招待取消済 |
権限
AdminPermission
管理者ロールの権限値。AdminRolePermission モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
ROOT | * | 全権限 |
TenantPermission
テナントユーザーのロール権限値。TenantRolePermission モデルで使用されます。
アプリ側で独自の権限を追加する場合は、アプリ側での拡張を参照してください。
| ケース | 値 |
|---|---|
ROOT | * |
USER_READ | user:read |
USER_WRITE | user:write |
プラン・サブスクリプション
PlanStatus
プランのステータス。Plan モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
ACTIVE | ACTIVE | 利用中 |
INACTIVE | INACTIVE | 利用停止中 |
ARCHIVED | ARCHIVED | アーカイブ済 |
PlanType
プランの種別。Plan モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
TRIAL | TRIAL | トライアルプラン |
NORMAL | NORMAL | 通常プラン |
SPECIAL | SPECIAL | 特別プラン |
コンテンツ
AnnouncementStatus
お知らせのステータス。Announcement モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
DRAFT | DRAFT | 下書き |
PUBLISHED | PUBLISHED | 公開 |
ARCHIVED | ARCHIVED | アーカイブ済 |
AnnouncementType
お知らせの種別。Announcement モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
DEFAULT | DEFAULT | NEWS |
RELEASE | RELEASE | リリース |
TROUBLE | TROUBLE | 障害情報 |
InquiryStatus
お問い合わせの対応ステータス。Inquiry モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
OPEN | OPEN | 未対応 |
IN_PROGRESS | IN_PROGRESS | 対応中 |
CLOSED | CLOSED | 対応済 |
MailStatus
管理者メールの送信ステータス。AdminMail モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
DRAFT | DRAFT | 下書き |
SCHEDULED | SCHEDULED | 予約済 |
SENDING | SENDING | 送信中 |
SENT | SENT | 送信済 |
ERROR | ERROR | エラー |
MailDeliveryStatus
メール配信レコードのステータス。AdminMailDelivery モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
SENT | SENT | 送信済 |
MailTargetType
メール送信対象の種別。AdminMail モデルで使用されます。
| ケース | 値 | ラベル |
|---|---|---|
ALL | ALL | 全員 |
TENANT | TENANT | テナント |
USER | USER | ユーザー |
アクティビティログ
ActivityLogType
操作ログの種別。ActivityLog モデルで使用されます。拡張メソッドとして group() と label() を持ちます。
アプリ側で独自の種別を追加する場合は、アプリ側での拡張を参照してください。
| ケース | 値 | グループ | ラベル |
|---|---|---|---|
COMMON_LOGIN | COMMON_LOGIN | common | 共通:ログイン |
ADMIN_LOGIN | ADMIN_LOGIN | admin | 管理者:ログイン |
TENANT_LOGIN | TENANT_LOGIN | tenant | テナント:ログイン |
ADMIN_CREATE_TENANT | ADMIN_CREATE_TENANT | admin | 管理者:テナント作成 |
ADMIN_UPDATE_TENANT | ADMIN_UPDATE_TENANT | admin | 管理者:テナント更新 |
ADMIN_CREATE_SUBSCRIPTION | ADMIN_CREATE_SUBSCRIPTION | admin | 管理者:サブスクリプション作成 |
ADMIN_CREATE_PLAN | ADMIN_CREATE_PLAN | admin | 管理者:プラン作成 |
ADMIN_UPDATE_PLAN | ADMIN_UPDATE_PLAN | admin | 管理者:プラン更新 |
ADMIN_UPDATE_USER | ADMIN_UPDATE_USER | admin | 管理者:ユーザー更新 |
ADMIN_DELETE_USER | ADMIN_DELETE_USER | admin | 管理者:ユーザー削除 |
ADMIN_UPDATE_ADMIN_USER | ADMIN_UPDATE_ADMIN_USER | admin | 管理者:管理者更新 |
ADMIN_DELETE_ADMIN_USER | ADMIN_DELETE_ADMIN_USER | admin | 管理者:管理者削除 |
ADMIN_INVITE_ADMIN_USER | ADMIN_INVITE_ADMIN_USER | admin | 管理者:管理者招待 |
ADMIN_REVOKE_ADMIN_USER_INVITATION | ADMIN_REVOKE_ADMIN_USER_INVITATION | admin | 管理者:管理者招待取り消し |
ADMIN_CREATE_ADMIN_ROLE | ADMIN_CREATE_ADMIN_ROLE | admin | 管理者:管理者ロール作成 |
ADMIN_UPDATE_ADMIN_ROLE | ADMIN_UPDATE_ADMIN_ROLE | admin | 管理者:管理者ロール更新 |
ADMIN_DELETE_ADMIN_ROLE | ADMIN_DELETE_ADMIN_ROLE | admin | 管理者:管理者ロール削除 |
ADMIN_CREATE_BLOCKED_DOMAIN | ADMIN_CREATE_BLOCKED_DOMAIN | admin | 管理者:ブロックドメイン追加 |
ADMIN_DELETE_BLOCKED_DOMAIN | ADMIN_DELETE_BLOCKED_DOMAIN | admin | 管理者:ブロックドメイン削除 |
アナリティクス
AnalyticsAggregation
統計の集計方法。toSql(field) メソッドで SQL 関数文字列を生成できます。
| ケース | 値 | ラベル | SQL 関数 |
|---|---|---|---|
COUNT | COUNT | 件数 | COUNT(field) |
SUM | SUM | 合計 | SUM(field) |
AVERAGE | AVERAGE | 平均 | AVG(field) |
MAX | MAX | 最大値 | MAX(field) |
MIN | MIN | 最小値 | MIN(field) |
AnalyticsDateUnit
統計の日付単位。
| ケース | 値 | ラベル |
|---|---|---|
DAY | DAY | 日 |
WEEK | WEEK | 週 |
MONTH | MONTH | 月 |
YEAR | YEAR | 年 |