بنقرة واحدة
business-rules
All business rules, state machines, scoring, regulations, and domain constraints for SE104_VLEAGUE
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
All business rules, state machines, scoring, regulations, and domain constraints for SE104_VLEAGUE
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Swagger/OpenAPI setup and documentation patterns for SE104_VLEAGUE
Complete guide for the SE104_VLEAGUE React frontend — pages, services, components, auth flow, i18n, and patterns
Complete guide for testing patterns, test structure, CI pipeline, and development workflow for SE104_VLEAGUE
Complete guide for the SE104_VLEAGUE NestJS backend — modules, endpoints, Prisma schema, guards, interceptors, and patterns
JWT auth, OAuth, OTP verification, session management, RBAC for SE104_VLEAGUE
Prisma schema, migrations, seeding, and database operations for SE104_VLEAGUE
| name | Business Rules |
| description | All business rules, state machines, scoring, regulations, and domain constraints for SE104_VLEAGUE |
Stored in the regulations table, keyed by seasonId. Managed via RegulationModule.
| Key | Default | Type | Purpose |
|---|---|---|---|
MIN_AGE | 16 | number | Minimum player age |
MAX_AGE | 40 | number | Maximum player age |
MIN_ROSTER | 15 | number | Minimum team roster size |
MAX_ROSTER | 22 | number | Maximum team roster size |
MAX_FOREIGN_PLAYERS | 3 | number | Foreign player limit per team |
WIN_POINTS | 3 | number | Points awarded for a win |
DRAW_POINTS | 1 | number | Points awarded for a draw |
LOSS_POINTS | 0 | number | Points awarded for a loss |
MAX_GOAL_TIME | 96 | number | Maximum allowed goal minute |
Cross-module helper exported from RegulationModule:
regulationHelper.getNumericValue(seasonId, 'MAX_ROSTER', 22);
// Lookup chain: DB → defaults → hardcoded fallback
Used by: RegistrationModule (age), RosterModule (roster/foreign limits), MatchModule (goal time).
| Result | Points |
|---|---|
| Win | 3 (configurable via WIN_POINTS) |
| Draw | 1 (configurable via DRAW_POINTS) |
| Loss | 0 (configurable via LOSS_POINTS) |
Only APPROVED season teams are shown in standings. Non-approved teams excluded.
DRAFT → PUBLISHED → LOCKED → FINISHED
DRAFT → POSTPONED
PUBLISHED → POSTPONED
POSTPONED → DRAFT
Validation rules:
UPCOMING → IN_PROGRESS → COMPLETED
IN_PROGRESS at a timeREGISTERED → APPROVED
REGISTERED → REJECTED
REGISTERED → WITHDRAWN
| Type | Scoring | Description |
|---|---|---|
GOAL | +1 for scoring team | Regular goal |
OWN_GOAL | +1 for opposing team | Own goal — points awarded to OTHER team |
PENALTY | +1 for scoring team | Penalty goal (counts as regular goal for scoring) |
PENALTY_MISS | No score change | Missed/saved penalty |
YELLOW_CARD | — | Yellow card |
RED_CARD | — | Red card |
SUBSTITUTION | — | Player substitution (requires relatedPlayerId for sub-in player) |
When events are added or removed:
homeScore / awayScore are automatically recalculated from eventsminute must not exceed MAX_GOAL_TIME regulation (default: 96)| Rule | Source | Default |
|---|---|---|
| Minimum age | MIN_AGE regulation | 16 |
| Maximum age | MAX_AGE regulation | 40 |
| Max roster size | MAX_ROSTER regulation | 22 |
| Min roster size | MIN_ROSTER regulation | 15 |
| Foreign player limit | MAX_FOREIGN_PLAYERS regulation | 3 |
| Jersey number uniqueness | Enforced per active team roster | — |
| Exclusive team membership | Player can only belong to one team at a time | — |
| Soft removal | leftAt timestamp set (not deleted) | — |
POST /api/players/import accepts CSV file (max 2MB)teamId for automatic roster assignment| Resource | ADMIN | TEAM_MANAGER | REFEREE | SUPERVISOR | PUBLIC |
|---|---|---|---|---|---|
| Teams (CRUD) | ✅ | Read only | Read only | Read only | Read only |
| Players (CRUD) | ✅ | Create/Edit own | Read only | Read only | Read only |
| Stadiums | ✅ | Read only | Read only | Read only | Read only |
| Seasons | ✅ | Read only | Read only | Read only | Read only |
| Schedule | ✅ Generate/Publish | Read only | Read only | Read only | Read only |
| Matches (edit) | ✅ | Read only | Add/Remove events | Read only | Read only |
| Match status | ✅ | — | — | — | — |
| Roster | ✅ | ✅ Own team | Read only | Read only | Read only |
| Regulations | ✅ | Read only | Read only | Read only | Read only |
| Users | ✅ | — | — | — | — |
| Standings | Read | Read | Read | Read | Read |
| Upload | ✅ | ✅ | — | — | — |
GOAL + PENALTY events per playerrelatedPlayerId), cards| Password | Role | |
|---|---|---|
admin@vleague.local | Admin@123 | ADMIN |
manager@vleague.local | Manager@123 | TEAM_MANAGER |
referee@vleague.local | Referee@123 | REFEREE |
supervisor@vleague.local | Supervisor@123 | SUPERVISOR |
user@vleague.local | User@123 | PUBLIC |