# معماری — تسک ۱۴: ماژول منشی ## ساختار فایل‌ها ``` src/Module/Secretary/ ├── Controller/ │ └── SecretaryController.php ├── Service/ │ └── SecretaryService.php ├── Repository/ │ └── SecretaryRepository.php ├── Entity/ │ └── Secretary.php ├── DTO/ │ ├── Request/ │ │ ├── CreateSecretaryRequest.php │ │ └── UpdateSecretaryRequest.php │ └── Response/ │ └── SecretaryResponse.php └── Voter/ └── SecretaryVoter.php ``` ## Entity: Secretary ```php #[ORM\Entity] #[ORM\Table(name: 'secretaries')] class Secretary { #[ORM\Id, ORM\GeneratedValue, ORM\Column] private int $id; #[ORM\Column(type: UuidType::NAME, unique: true)] private Uuid $uuid; #[ORM\ManyToOne(targetEntity: User::class)] private User $user; // حساب کاربری منشی #[ORM\ManyToOne(targetEntity: Doctor::class)] private Doctor $doctor; // دکتر مربوطه #[ORM\Column(length: 20, default: 'active')] private string $status; #[ORM\Column(type: 'json', nullable: true)] private ?array $permissions; // ['manage_appointments', 'view_payments', ...] // TimestampableTrait } ```